/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2024 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "crc.h"
#include "usart.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdarg.h>
#include "edge-impulse-sdk/classifier/ei_run_classifier.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
static const float features[] = {
		2, 4, 2, -3, -1, 2, 5, 3, -6, -5, 1, 6, 3, -4, -7, 0, 10, 9, -6, -17, -5, 20, 21, -11, -34, -7, 36, 32, -22, -53, -4, 55, 38, -43, -74, 8, 83, 41, -67, -87, 22, 104, 32, -93, -85, 46, 112, 12, -110, -76, 68, 115, -5, -115, -59, 82, 101, -27, -109, -31, 86, 71, -45, -90, -5, 82, 42, -54, -65, 12, 60, 10, -48, -26, 31, 29, -21, -37, 1, 33, 7, -27, -10, 26, 17, -24, -32, 13, 43, 10, -39, -28, 26, 39, -6, -41, -12, 37, 34, -20, -44, -3, 44, 29, -23, -37, 4, 39, 17, -26, -30, 11, 39, 11, -30, -28, 13, 35, 6, -31, -24, 14, 29, 0, -28, -16, 17, 27, -4, -30, -14, 17, 22, -7, -28, -10, 15, 13, -10, -23, -2, 17, 9, -12, -22, -1, 16, 6, -11, -14, 3, 11, -1, -12, -7, 8, 10, -5, -9, 0, 7, 1, -9, -3, 8, 8, -3, -9, -1, 8, 2, -7, -4, 6, 7, -4, -8, 0, 9, 7, 0, -5, 0, 5, 5, 4, 2, 5, 5, 2, 1, 0, 0, 2, 3, 3, 1, -4, -5, -1, 5, 4, -2, -5, 0, 5, 2, -5, -7, 4, 9, -2, -12, -6, 7, 6, -7, -11, -1, 9, 4, -10, -11, 4, 12, 1, -15, -13, 4, 14, -1, -16, -8, 11, 11, -9, -20, -5, 17, 13, -10, -18, -2, 17, 8, -13, -14, 5, 18, 5, -14, -11, 7, 15, 5, -6, -4, 5, 9, -1, -9, -3, 5, 9, 2, -4, -2, 3, 3, 2, -2, -1, 1, 2, 0, -5, -3, 1, 6, 2, -5, -8, -2, 5, -1, -8, -5, 5, 6, -2, -10, -4, 9, 8, -5, -11, 1, 9, 3, -9, -11, 2, 10, 2, -9, -9, 3, 9, 0, -9, -7, 5, 8, -2, -9, -5, 4, 5, -2, -4, 2, 5, 0, -4, -1, 4, 3, 0, -3, -1, 4, 2, -3, -4, 1, 2, -1, -3, 0, 4, 4, -1, -3, 0, 1, 4, 2, -2, 0, 2, 1, 1, -1, 2, 2, 0, -1, 0, 1, 0, 0, 3, 3, -4, -6, -1, 5, 1, -6, -4, 0, 4, 1, -6, -3, 5, 7, -1, -8, -5, 4, 5, -2, -6, -2, 4, 2, -5, -6, -1, 4, 2, -6, -6, 3, 6, -1, -8, -4, 4, 3, -3, -5, 0, 5, 2, -3, -1, 4, 4, 2, 0, 0, 2, 4, 1, -1, 0, 5, 5, 0, -1, 0, 3, 3, -2, -5, 1, 5, 3, -2, -4, 2, 2, 0, -4, -1, 4, 2, -1, -4, -4, 2, 2, -1, -2, -1, 3, -1, -4, -5, -2, 4, 0, -6, -4, 1, -1, -3, -2, 0, 1, 2, -3, -5, -3, -1, -1, -2, -2, -3, -2, 1, 1, -2, -3, 1, 3, 1, -3, -5, 0, 3, 2, -2, -1, 1, 2, 1, 0, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, -1, -1, 1, 1, 0, -2, 0, 3, 2, -1, -2, 1, 3, 1, -2, -1, 1, 1, 1, 0, 0, 2, 1, 0, -1, 1, 2, 0, -1, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 1, 1, -1, -1, 1, 2, 2, -2, -2, 4, 4, 0, -4, -4, 0, -1, -2, -2, 0, 1, -2, -3, -2, -2, -1, -2, -2, 0, 1, -1, -4, -3, 0, 1, -1, -1, 1, 2, -1, -1, -1, 0, 1, -1, -2, 0, 2, 2, -1, -1, 2, 3, 2, -1, -1, 2, 3, 1, 1, 2, 2, -1, -1, 1, 2, 2, 0, -1, 0, 2, 0, -2, 0, 0, 1, -1, -2, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 3, 3, -1, -3, -1, 1, 2, -1, -3, -2, 1, 2, -1, -2, 0, 1, 0, 1, -1, 0, 1, 0, 0, 0, 1, 1, 0, -1, -2, 0, 0, 1, -1, -3, 0, 1, 0, 0, 0, 1, 1, 1, -1, -2, 0, 0, -1, -1, -1, -1, 1, 0, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 0, -1, 0, 1, 0, 0, -1, -2, 0, 2, 1, 0, 1, -1, -2, -2, 1, 2, 1, 1, 0, 1, -1, -2, -2, 0, 2, 0, -1, 0, 1, -1, -2, -1, 0, 2, 2, 0, 0, 2, 4, 2, -1, -2, 0, 1, 0, 0, 1, 3, 1, 2, 1, 1, 2, -1, 0, 2, 2, 0, -3, -1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, -2, -2, -1, 1, 1, 0, 1, 1, 0, 0, -5, -3, -1, 0, 1, -1, 1, 2, -2, -1, 0, 3, 2, -2, 0, 1, 1, 1, -1, -2, 1, 1, 1, -1, 0, 1, 0, 1, 1, 2, 1, -2, 0, 1, 1, 1, -1, 1, 0, -1, -1, -2, -2, -2, -3, -3, 0, 1, 0, 0, 1, 0, -2, -3, -4, -2, 1, 1, 1, 1, 1, -1, -2, -2, -2, -1, 0, 1, 1, 2, 1, -1, -2, -1, 1, 1, 0, 1, 2, 2, 1, -1, -1, 1, 0, 3, 3, 3, 3, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 2, 0, -2, -3, -2, -2, -1, 1, 2, 2, -1, -1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, -2, -1, 0, 1, 1, 1, -1, -2, -1, 2, 2, 0, 0, 1, 1, 1, -1, -2, 0, 0, 0, -1, 0, 1, 0, 1, 1, 2, 1, 0, 1, 1, 1, -1, -2, -2, 0, 1, 0, 1, -1, -1, -1, -2, -3, 0, 1, -1, -2, 0, 0, -1, -2, -1, 0, 0, 0, -2, -1, -2, -3, -1, 1, -1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, -1, -2, 0, 1, 1, 1, 2, 2, 2, 1, 0, 1, 0, 0, 0, 1, 2, 1, 0, 1, 0, -1, 0, 1, 1, 0, 0, 1, -1, -3, -2, 0, -1, -3, 0, 1, 0, 1, -1, -1, 1, 1, -1, -1, 0, 0, 1, 0, 0, 1, 2, 1, 0, 0, -1, 0, 0, -2, 0, 1, 3, 0, -2, 1, -1, -2, 0, 1, 2, 0, -1, -1, 0, 1, -1, -2, -1, 1, 1, -1, -3, 0, -1, -2, -1, -1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, -2, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 2, 2, -1, -1, 0, 0, 1, 1, 0, 1, 1, 1, -2, -2, 0, 1, -1, -2, 0, 1, 0, -1, 0, 1, -1, -2, -2, 1, 0, -3, -2, -1, 1, 1, 0, 1, 2, 2, 2, 2, 1, 0, -2, 0, -2, 0, 1, -1, -1, -2, 0, 0, -1, -3, -1, 1, 1, -1, -1, 1, 1, 1, 0, 0, 0, -1, 0, 1, -3, 0, 0, 0, 1, 0, 1, 2, 1, 1, 2, 2, 2, -1, 0, -1, 0, 0, -3, 0, 0, 1, 1, 1, 2, 0, -1, 1, 1, 1, 2, 2, 2, 0, 0, 1, 0, 0, 1, 1, 2, 2, 1, 2, 1, 1, 0, 0, 1, -1, -1, 1, 1, 0, 1, 0, 1, 0, -2, 0, 1, 0, -2, 0, 1, -1, -1, -1, -1, -3, -2, -1, -1, -2, 0, -1, -2, -1, -2, -1, -2, -1, 1, 1, 1, 0, 0, 1, -2, -3, -1, -2, 0, 0, -1, 2, 2, -1, -2, 0, 1, 1, 2, 2, 0, 1, 1, 2, 1, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, -2, -2, 0, 1, 1, 1, 1, 1, -2, 0, 1, 1, -1, -2, 0, 0, 0, -1, -1, 0, -1, -1, -2, -1, 1, 0, 0, 0, 0, -1, -2, -1, -1, -1, 2, 2, 1, 1, 2, 1, -1, -1, -1, 0, -1, 0, 1, 1, 1, 0, 2, 1, -2, 0, 0, 1, 1, 0, 2, 1, -1, -1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, -2, -1, 0, 0, 1, 1, -1, 0, 1, 0, 1, 0, 1, -1, 0, -1, -2, -1, 0, -2, -3, -2, 0, 0, -5, -2, -1, -2, 0, 0, -1, -2, -2, 0, 1, -2, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 2, 1, 0, 0, 1, 1, -1, -1, 2, 2, 1, 1, 1, 0, -1, -2, -2, -1, -2, -1, 0, 1, 1, 1, 1, -2, -2, -1, -2, -2, -2, -2, -1, 0, -1, -1, 0, 1, -2, 1, 1, 0, -1, -1, 2, -1, 0, 1, 1, 0, -1, 2, 2, 2, 1, 1, 1, 2, 2, 3, 2, 0, 1, 0, 1, -1, 0, 1, 0, 1, -1, 0, -1, -2, -2, -2, -1, -1, 0, -1, -2, -1, -1, 0, 1, -1, -2, 0, 0, -2, -3, -2, -1, 0, -1, 0, 0, 0, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 2, 3, 2, 2, 1, 2, 1, -1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, -1, -2, -2, 0, 0, 1, -1, 0, 0, 0, 2, -2, -3, -1, 0, 1, 0, 1, 1, 1, -1, -1, 2, -1, 0, -1, -1, 1, 0, 1, 1, 2, 0, 1, 1, 0, 1, -1, -1, -1, 0, -1, 1, 2, -1, -2, -1, 1, 0, 1, 0, 1, 0, 1, 3, -1, -1, 0, 1, -1, 0, 1, 1, 1, -1, -3, 0, -1, -1, 1, 2, 2, 2, 2, 1, 1, -1, -2, -1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, -1, 1, -1, -1, 1, 1, 0, -2, -1, 0, 1, 2, 1, 2, 1, 1, 0, -1, -1, -2, -2, -1, 0, 0, 1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 2, 1, 2, 2, 0, 1, 1, 0, 0, 2, 0, -1, 2, 1, 2, 0, 0, -1, -2, -1, -2, -1, -2, 1, 0, -2, -2, -4, -3, -3, -3, -3, -1, 0, 0, 1, -1, -1, 1, -1, -2, -2, -1, 1, -1, -1, 1, 0, 1, 0, 1, 1, 2, 1, 0, 2, 3, 1, -1, 0, 1, 0, 2, 2, 1, 2, 2, 0, 0, -2, 0, 1, -1, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, -1, 0, 2, 2, 3, 4, 4, 6, 4, 2, 4, 4, 4, 5, 6, 9, 9, 11, 9, 11, 10, 10, 11, 11, 11, 10, 12, 13, 14, 14, 14, 14, 16, 15, 15, 17, 16, 17, 17, 18, 17, 15, 15, 16, 17, 16, 16, 16, 15, 15, 13, 12, 8, 8, 7, 7, 3, 0, -2, -5, -6, -9, -10, -10, -10, -12, -15, -17, -18, -20, -21, -20, -22, -23, -23, -22, -24, -25, -25, -24, -23, -23, -22, -25, -21, -21, -22, -20, -21, -17, -14, -14, -14, -13, -12, -12, -11, -11, -10, -9, -6, -5, -3, -3, -1, 0, 0, -1, -2, 0, 1, 4, 1, 1, 1, 0, -1, -2, 1, 1, 3, 3, 3, 4, 5, 5, 5, 8, 6, 7, 6, 7, 5, 7, 9, 8, 9, 9, 7, 6, 7, 6, 7, 7, 3, 4, 4, 3, 2, -1, -2, 0, -2, -4, -3, -3, -1, 0, -2, -2, -3, -2, -3, -1, 1, 3, 5, 4, 4, 6, 9, 10, 10, 10, 12, 15, 15, 18, 19, 21, 20, 22, 22, 21, 22, 22, 24, 21, 22, 18, 15, 15, 15, 12, 12, 12, 10, 9, 7, 5, 2, 1, -1, -1, -4, -8, -8, -7, -8, -11, -11, -14, -13, -14, -16, -18, -20, -18, -17, -18, -18, -17, -16, -17, -17, -18, -19, -20, -19, -18, -18, -17, -17, -17, -17, -14, -15, -13, -14, -13, -13, -12, -9, -11, -11, -11, -10, -13, -11, -12, -14, -15, -19, -18, -24, -26, -30, -33, -37, -40, -45, -50, -51, -57, -58, -64, -65, -67, -69, -71, -71, -68, -69, -69, -69, -63, -59, -50, -43, -35, -19, -7, 6, 15, 31, 51, 73, 91, 104, 127, 153, 179, 199, 219, 242, 270, 293, 311, 333, 360, 390, 411, 426, 445, 469, 493, 508, 522, 535, 553, 565, 569, 572, 576, 577, 570, 561, 541, 525, 505, 482, 448, 409, 370, 327, 287, 229, 168, 103, 42, -18, -90, -168, -258, -326, -396, -467, -556, -646, -720, -792, -857, -945, -1024, -1099, -1152, -1214, -1283, -1366, -1455, -1527, -1592, -1649, -1743, -1851, -1959, -2026, -2095, -2196, -2305, -2372, -2369, -2365, -2374, -2378, -2279, -2091, -1888, -1713, -1523, -1217, -827, -426, -84, 270, 711, 1224, 1710, 2104, 2479, 2903, 3378, 3783, 4081, 4312, 4552, 4801, 4972, 5011, 4959, 4915, 4871, 4767, 4523, 4192, 3873, 3597, 3301, 2901, 2441, 2000, 1641, 1290, 881, 439, 66, -204, -459, -756, -1072, -1285, -1389, -1450, -1551, -1656, -1697, -1660, -1582, -1520, -1447, -1366, -1245, -1128, -1012, -917, -837, -749, -642, -531, -490, -510, -555, -531, -473, -470, -567, -697, -762, -778, -828, -968, -1104, -1162, -1171, -1253, -1418, -1558, -1578, -1530, -1536, -1639, -1761, -1793, -1759, -1714, -1743, -1808, -1852, -1832, -1805, -1860, -1987, -2079, -2006, -1899, -1954, -2229, -2438, -2340, -2070, -1981, -2199, -2362, -2194, -1823, -1653, -1693, -1589, -1114, -528, -250, -180, 90, 799, 1603, 2124, 2378, 2733, 3349, 3999, 4500, 4884, 5332, 5766, 6066, 6218, 6374, 6566, 6653, 6608, 6517, 6439, 6182, 5666, 5114, 4829, 4687, 4243, 3378, 2485, 1978, 1668, 1104, 215, -553, -943, -1257, -1880, -2721, -3249, -3336, -3343, -3670, -4171, -4419, -4319, -4139, -4122, -4122, -3940, -3605, -3332, -3156, -2924, -2518, -2048, -1692, -1436, -1184, -876, -602, -392, -213, -4, 169, 221, 181, 141, 188, 230, 186, 45, -84, -157, -223, -330, -467, -511, -481, -473, -564, -658, -602, -397, -206, -147, -118, 29, 307, 573, 746, 858, 985, 1157, 1339, 1444, 1399, 1224, 1074, 1046, 983, 594, -121, -767, -1047, -1195, -1781, -2840, -3787, -4115, -4131, -4555, -5465, -6190, -6181, -5807, -5784, -6193, -6337, -5757, -4826, -4231, -4038, -3628, -2618, -1319, -289, 413, 1188, 2275, 3467, 4479, 5331, 6158, 6959, 7633, 8216, 8783, 9237, 9401, 9332, 9312, 9417, 9313, 8724, 7892, 7319, 7033, 6485, 5368, 4086, 3240, 2744, 2021, 819, -432, -1205, -1633, -2191, -3049, -3818, -4159, -4248, -4411, -4700, -4842, -4660, -4333, -4086, -3901, -3582, -3070, -2568, -2155, -1739, -1281, -849, -573, -311, 59, 437, 614, 502, 380, 451, 625, 604, 297, -55, -238, -297, -471, -839, -1174, -1265, -1241, -1375, -1713, -1909, -1791, -1494, -1294, -1318, -1330, -1199, -825, -364, 43, 360, 542, 668, 853, 1240, 1735, 1945, 1699, 1412, 1365, 1381, 961, 116, -527, -823, -1166, -2175, -3763, -5010, -5329, -5139, -5558, -6917, -8163, -8418, -7957, -7600, -7681, -7732, -7312, -6524, -5786, -5341, -4741, -3424, -1661, -193, 600, 1247, 2311, 3775, 5432, 6990, 8162, 8804, 9155, 9674, 10493, 11310, 11784, 11803, 11516, 11177, 10724, 10003, 9139, 8560, 8281, 7559, 6013, 4205, 2926, 2194, 1487, 532, -547, -1679, -2907, -4060, -4818, -4916, -4737, -4895, -5537, -6038, -5839, -5193, -4648, -4220, -3510, -2590, -1937, -1809, -1649, -865, 415, 1389, 1572, 1294, 1119, 1284, 1503, 1656, 1659, 1465, 920, 111, -553, -864, -947, -1142, -1564, -2167, -2745, -3287, -3594, -3607, -3342, -3043, -3073, -3296, -3459, -3187, -2567, -1846, -1179, -662, -323, -35, 292, 802, 1587, 2475, 3161, 3123, 2622, 2279, 2405, 2642, 2359, 1515, 566, -274, -1216, -2653, -4391, -5440, -5557, -5616, -6953, -9143, -10459, -10127, -9093, -8725, -9012, -9104, -8451, -7442, -6561, -5850, -4526, -2369, -291, 808, 1231, 2276, 4066, 6044, 7820, 9412, 10504, 10801, 10817, 11299, 12348, 13310, 13617, 13058, 12100, 11249, 10519, 9509, 8428, 7921, 7603, 6377, 4003, 1841, 868, 583, 7, -1037, -2136, -3067, -4024, -5189, -6100, -6071, -4997, -4218, -4753, -5882, -6096, -5000, -3594, -2547, -1795, -1123, -646, -352, -149, 386, 1492, 2733, 3215, 2549, 1657, 1248, 1315, 1390, 1370, 1129, 366, -839, -2114, -2849, -2896, -2612, -2755, -3593, -4591, -5117, -5148, -4997, -4611, -3993, -3414, -3314, -3461, -3352, -2581, -1265, -54, 749, 1128, 1612, 2094, 2382, 2954, 4183, 5669, 6003, 4977, 3895, 3609, 3832, 3734, 2906, 1719, 253, -1450, -3732, -6203, -7409, -7090, -6907, -8832, -11865, -13553, -13110, -11849, -10958, -10458, -10048, -9415, -8619, -7803, -6686, -4331, -1000, 1663, 2395, 2370, 3420, 5527, 7885, 9924, 11805, 12860, 12598, 11879, 11797, 12782, 14076, 14623, 13767, 11892, 9985, 8621, 7325, 6334, 6082, 5798, 4162, 1163, -1285, -2256, -2276, -2130, -2229, -2779, -3749, -4869, -5821, -6193, -5260, -3309, -1855, -2070, -3165, -3376, -2373, -709, 976, 2477, 3317, 3178, 2614, 2433, 2950, 4086, 5050, 5156, 4051, 2225, 967, 403, 398, 250, -270, -1293, -2866, -4486, -5620, -5853, -5329, -4881, -5082, -5934, -6712, -6760, -6358, -5212, -3921, -2684, -2157, -2445, -2335, -1598, -42, 1549, 2648, 3385, 3446, 3230, 3179, 3493, 4872, 6027, 6391, 5396, 3653, 2941, 2654, 2753, 2189, 931, -616, -2710, -4727, -7019, -9223, -10039, -9690, -9623, -11526, -14488, -15483, -14352, -12188, -10484, -9591, -8800, -8290, -7135, -5417, -3259, -450, 2517, 4891, 5737, 5787, 6684, 8620, 10890, 12779, 13938, 14138, 13172, 11980, 11540, 11885, 12681, 12667, 11329, 8827, 6319, 4676, 3507, 2844, 2614, 2196, 742, -1655, -3525, -4048, -3437, -2408, -1700, -1678, -2122, -2588, -2946, -2740, -1460, 913, 2676, 2565, 1342, 675, 1507, 2971, 4383, 5203, 5178, 4318, 2995, 2016, 1797, 2246, 2698, 2202, 575, -1516, -3143, -3847, -3978, -3867, -3946, -4649, -5884, -7183, -7719, -7155, -6086, -4973, -4645, -4802, -5125, -5000, -4213, -3059, -1550, -459, 120, -294, -444, -97, 943, 1962, 2697, 3192, 2752, 2246, 1611, 2251, 3120, 3970, 3763, 2452, 1533, 1327, 1859, 1370, 334, -724, -1288, -2681, -4413, -6633, -8489, -9179, -9148, -8516, -10278, -12374, -13160, -11429, -9226, -8167, -7342, -6494, -5370, -4347, -2583, -842, 1546, 3818, 6085, 6795, 6594, 7415, 8963, 10875, 11564, 12263, 12000, 11012, 9834, 9440, 9726, 9643, 9020, 7591, 5540, 3411, 2364, 1385, 663, -72, -167, -678, -2282, -3415, -3452, -2314, -1357, -557, -22, 208, 104, 140, 455, 1268, 2717, 3956, 4168, 3081, 2166, 2115, 2578, 3049, 3302, 3121, 2101, 443, -923, -1417, -1171, -797, -1160, -2315, -3730, -4624, -4922, -4965, -4611, -4136, -3894, -4252, -4841, -4902, -4445, -3451, -2357, -1555, -1321, -1530, -1652, -1590, -1230, -424, 619, 1150, 656, -113, -512, -210, 445, 1174, 1601, 1173, 271, -320, 60, 1053, 2043, 2574, 2443, 1914, 1428, 1458, 1770, 2210, 2135, 945, -1312, -3398, -4448, -5655, -7446, -9038, -9117, -9070, -10467, -12361, -12969, -11442, -9323, -7554, -6744, -6403, -5619, -3926, -1759, 334, 2727, 5212, 7051, 7463, 7673, 8654, 10274, 11776, 12567, 12896, 12485, 11471, 10060, 9079, 8730, 8866, 8364, 6312, 3565, 1432, 665, -301, -1463, -1928, -1516, -1568, -3059, -4156, -3750, -1983, -432, 676, 1396, 1957, 2453, 2579, 2954, 3632, 4980, 6022, 5850, 4915, 3765, 3090, 2440, 2050, 2011, 1831, 891, -984, -2957, -4097, -3985, -3470, -3412, -4283, -4957, -5038, -5001, -5165, -5101, -4045, -2826, -2106, -2292, -2601, -2691, -2195, -1285, -398, 47, -36, -287, -988, -1564, -1957, -1432, -751, -504, -921, -1750, -2208, -2197, -1312, -221, 502, 407, 320, 451, 1276, 1928, 2614, 3334, 3627, 3980, 3730, 3820, 3489, 3516, 2849, 1096, -1503, -3531, -4286, -6135, -8774, -11522, -11746, -12002, -13052, -14228, -14292, -12475, -11010, -9390, -8759, -7567, -5354, -1898, 823, 2374, 4322, 6892, 9160, 9683, 10747, 12142, 13564, 13662, 13356, 13054, 12312, 11369, 10024, 8908, 7590, 6973, 5333, 2845, 105, -898, -1125, -2375, -3560, -3928, -2976, -3234, -3554, -3373, -1863, 0, 1348, 2403, 2817, 3980, 5196, 6024, 5955, 6183, 6797, 6822, 5752, 4638, 4083, 3199, 1844, 458, -259, -1061, -2177, -3688, -4898, -5633, -5560, -5404, -5793, -6360, -6466, -5615, -4952, -4707, -4437, -3648, -2610, -1705, -1445, -1341, -1341, -953, -409, -282, -238, -452, -506, -1388, -2440, -2998, -2685, -2117, -2165, -2503, -2774, -2594, -2368, -1712, -825, 633, 1853, 2164, 2172, 2382, 3714, 4713, 4971, 5311, 5501, 6126, 5522, 4274, 3572, 3053, 3836, 3080, 472, -3683, -7801, -10015, -11374, -11880, -12252, -13180, -15188, -16826, -17225, -15137, -12231, -9031, -6205, -5268, -3917, -2408, 578, 3898, 7351, 11324, 13517, 13443, 12236, 11880, 12966, 14097, 14596, 14269, 12042, 9311, 6228, 4232, 3335, 3122, 3449, 1477, -1716, -5153, -6551, -6215, -5382, -3780, -2562, -1993, -2484, -2748, -1792, 743, 3824, 6524, 7866, 7876, 7975, 7823, 7922, 7799, 8053, 8503, 7194, 4822, 1947, 60, -1250, -3108, -4428, -5572, -6186, -7032, -8203, -9133, -9494, -8864, -7263, -5864, -4816, -4136, -3785, -2891, -2315, -964, 350, 1452, 2215, 1412, 580, -253, -98, 19, -316, -769, -1394, -2426, -3857, -4971, -5144, -4330, -3726, -3047, -3064, -2568, -1828, -1015, 435, 1679, 3743, 5293, 6135, 6269, 5946, 6379, 6878, 7050, 6858, 6413, 6197, 4770, 2598, 827, 506, 1114, -88, -2888, -6787, -9932, -12756, -15283, -16720, -16619, -15399, -15864, -17436, -18778, -16835, -12782, -8097, -4448, -1973, 307, 1821, 4191, 6575, 10267, 14388, 17254, 17338, 15203, 13408, 12810, 12859, 12359, 11621, 10047, 7744, 4012, 772, -1225, -1266, -597, -1133, -2657, -4594, -5672, -6522, -6358, -4705, -1239, 1697, 2586, 1928, 1710, 3088, 5334, 7965, 9687, 10865, 10546, 9210, 7232, 6342, 6816, 7571, 6600, 3696, 442, -2549, -4459, -6121, -6466, -6437, -6718, -7715, -9163, -9662, -9215, -7903, -6141, -4550, -2940, -1542, -524, -30, 67, 757, 1784, 2614, 2638, 2047, 1224, 219, -721, -1618, -2164, -2579, -2750, -3113, -3661, -4234, -4295, -4037, -3722, -2948, -1949, -882, -475, -243, 318, 1345, 2717, 4111, 5324, 5686, 5523, 5056, 4783, 5218, 5728, 6208, 5218, 3270, 1545, 320, 680, -165, -1367, -3088, -4341, -4213, -5907, -8400, -12455, -15752, -16981, -16180, -14062, -13250, -14201, -15028, -13654, -10696, -6338, -2634, 1561, 4055, 5544, 7058, 8054, 10631, 12711, 15361, 16034, 14642, 12689, 10405, 8595, 6880, 5967, 5475, 3809, 997, -1539, -4034, -5012, -5496, -4263, -2710, -2457, -2633, -3798, -3595, -1971, 1204, 4467, 6404, 7333, 7835, 7892, 8285, 9238, 10178, 10935, 10355, 9535, 7705, 5412, 3659, 2447, 1566, 132, -1829, -3835, -6150, -8227, -9109, -9391, -8974, -8883, -8635, -7974, -7557, -6361, -5262, -3402, -1406, 504, 2089, 2782, 2896, 2768, 2346, 2277, 2629, 2551, 1938, 20, -1605, -2959, -3732, -4032, -3960, -3755, -4031, -4280, -4222, -3668, -3127, -2120, -1088, 351, 1199, 1744, 2281, 2701, 3343, 3718, 4405, 4832, 5396, 5321, 4958, 4591, 4076, 3543, 2701, 1801, 1140, 543, -209, -1129, -2626, -3717, -4544, -4410, -3887, -3618, -3171, -3615, -4719, -7604, -11421, -12828, -10776, -7475, -6737, -8788, -10274, -9828, -7651, -4447, -988, 2032, 3682, 4720, 5064, 4718, 5613, 8199, 11078, 11931, 10514, 8838, 6501, 3859, 2605, 3206, 4496, 3811, 1712, -288, -1664, -1697, -1206, -243, 994, 1970, 2732, 2104, 1310, 2089, 4131, 6186, 6422, 6381, 6405, 6587, 6467, 6049, 6033, 5959, 5958, 5457, 4184, 2376, 1096, 237, -623, -1496, -2053, -2430, -3630, -5167, -6481, -6810, -6456, -5854, -5237, -4825, -4224, -3494, -3032, -2569, -1248, 288, 1588, 1767, 1721, 1337, 582, 71, -285, 214, 375, 147, -1107, -2676, -3505, -3522, -3149, -2908, -2570, -2244, -2158, -2233, -2164, -1934, -1293, -433, 1015, 1900, 2082, 1608, 1018, 1060, 1393, 2163, 2695, 2999, 2482, 1523, 783, 955, 1256, 1254, 985, 741, 866, 616, 315, -325, -702, -1231, -1948, -2410, -2598, -2082, -1987, -2138, -2196, -2299, -1372, -2616, -7086, -12429, -14071, -10497, -8121, -9009, -11154, -11580, -10370, -9031, -6792, -3326, -467, 1940, 3838, 4374, 4795, 5155, 7608, 9635, 10238, 10720, 9914, 8403, 5446, 3987, 4530, 4766, 3748, 1424, -397, -741, -714, -842, -919, -108, 1874, 1537, -67, -717, 1265, 3570, 3633, 3805, 4874, 6243, 5982, 5177, 5620, 7061, 7747, 6951, 5164, 4054, 3570, 2785, 1258, -144, -389, -1135, -3200, -5966, -7398, -7518, -7440, -8103, -8462, -8155, -7272, -6152, -5522, -4432, -3108, -1181, 419, 1492, 2547, 3363, 3508, 3139, 2954, 3177, 3210, 2272, 1301, 104, -603, -1482, -2291, -2922, -3657, -3789, -3795, -3372, -3452, -3629, -4024, -3678, -2691, -1547, -277, -42, 300, -5, 609, 1234, 1931, 2659, 2674, 2783, 2016, 1748, 1716, 2360, 2585, 2436, 2300, 2553, 2800, 2415, 1417, 1040, 1090, 867, 789, 109, 324, 2, -751, -1535, -2232, -1770, -871, -336, 60, 288, 844, 781, -3799, -8650, -12079, -9344, -5816, -6668, -9272, -11836, -10084, -8714, -6637, -4762, -2406, -530, 1430, 2747, 3631, 4579, 5679, 8212, 8714, 10415, 10718, 9923, 7717, 5372, 5217, 4734, 4144, 2637, 1633, 487, 98, -287, -60, -278, -167, -760, -2379, -2343, -929, 2470, 3262, 3366, 3119, 3592, 4164, 3925, 4840, 5995, 7180, 6870, 5741, 3648, 2316, 1045, 431, 25, 45, 134, -1781, -4369, -6812, -7059, -6757, -6641, -6457, -5808, -5204, -5080, -5052, -4600, -3881, -3183, -1590, 13, 1330, 1358, 595, 133, 142, 552, 941, 813, 588, -350, -1434, -2126, -2600, -2451, -2882, -2919, -2745, -2400, -2148, -2206, -2058, -1577, -838, -455, 58, 552, 1405, 1897, 2073, 2447, 2584, 2833, 2458, 2526, 3030, 3392, 3309, 2279, 1429, 806, 785, 973, 1272, 1534, 1106, 307, -529, -811, -745, -625, -811, -664, -678, -451, -168, -482, -614, -1472, -1020, -258, 633, 1175, 212, 2, -19, 1039, 1244, -1944, -6186, -9122, -8319, -6762, -7097, -8640, -9139, -8679, -7551, -6170, -4178, -1651, -31, 2532, 4073, 5772, 6462, 7253, 8558, 9329, 10472, 10670, 10080, 8505, 6971, 5826, 4810, 3181, 2268, 785, -375, -1280, -1843, -1328, -1667, -1307, -1734, -2225, -1961, -477, 1673, 2482, 2557, 3090, 4150, 4771, 4876, 4823, 5253, 4910, 4355, 3628, 2796, 2027, 385, -1326, -2334, -2887, -3174, -4487, -6070, -6633, -7123, -7239, -7925, -7711, -6795, -5601, -3967, -2640, -1461, -1169, -574, 423, 1865, 2677, 2920, 2653, 2473, 2403, 1900, 1322, 168, -489, -1284, -1831, -2351, -2777, -3156, -3874, -4239, -4221, -3748, -3406, -3264, -2812, -1877, -757, -4, 466, 809, 1341, 1671, 2171, 2776, 3469, 3643, 2920, 2598, 2100, 1962, 1290, 773, 697, 318, -224, -849, -826, -274, 70, 50, -12, 6, 373, 376, 476, 645, 873, 1285, 995, 1310, 1020, 874, 521, 22, 510, 37, -175, -1103, -1278, -1330, -1508, -2018, -2452, -2668, -2818, -2426, -3050, -2982, -4631, -5342, -6257, -6939, -6590, -6934, -5540, -4986, -3581, -2600, -1338, -21, 1171, 2471, 3904, 5404, 6246, 7172, 7231, 7984, 7455, 7550, 7022, 6239, 5108, 3557, 3317, 2705, 2366, 1353, 831, 188, -146, -399, 71, 574, 906, 1288, 1053, 1620, 1642, 2565, 3105, 3463, 3915, 3952, 4461, 4274, 3950, 3378, 3046, 2863, 2528, 1542, 618, -669, -2043, -3573, -4932, -5608, -6508, -7081, -7443, -7067, -6617, -6124, -5554, -4786, -3896, -2792, -1776, -800, 206, 1012, 1822, 2063, 2267, 2111, 1677, 1192, 830, 592, 50, -742, -1353, -1979, -2373, -2726, -2975, -2942, -2878, -2549, -2141, -1789, -1321, -923, -405, -36, 499, 1148, 1688, 2028, 2095, 2123, 2101, 2108, 1961, 1883, 1718, 1633, 1807, 1726, 1334, 1059, 397, 740, 711, 955, 1203, 920, 1346, 881, 928, 727, 702, 565, 355, 213, 383, 449, 209, 96, -696, -959, -1450, -1592, -1692, -2149, -2090, -2128, -2139, -2306, -2820, -3015, -3073, -2866, -2162, -1827, -1220, -1392, -1245, -1303, -1078, -166, 125, 1143, 1175, 1897, 2087, 2026, 2189, 1910, 2046, 1648, 1465, 1291, 1103, 857, 653, 561, 766, 991, 1231, 1411, 1485, 1565, 1743, 1825, 2162, 2457, 2770, 3069, 2960, 3294, 3020, 3068, 2640, 2464, 2457, 2284, 2389, 1987, 1829, 1397, 949, 436, 7, -200, -285, -671, -974, -1314, -1380, -1552, -1746, -1835, -2011, -2212, -2601, -2778, -3043, -2755, -2847, -2405, -2356, -1888, -1299, -970, -232, -218, 418, 193, 365, 269, 356, 419, 214, 46, -412, -536, -1028, -1116, -1615, -1611, -1663, -1541, -1200, -1022, -595, -571, -233, -79, 242, 332, 274, 687, 811, 1209, 1055, 871, 670, 334, 327, 346, 431, 357, 93, -250, -448, -789, -847, -925, -954, -941, -1106, -1080, -1085, -1076, -1041, -1161, -1116, -1071, -907, -622, -559, -463, -621, -584, -343, -393, -237, -465, -220, 17, 69, 412, -11, 226, -87, 185, 253, 260, 201, 28, 130, 95, 577, 289, 563, 150, 152, 286, -319, 408, -313, 633, -54, 122, 214, -201, 799, 154, 1649, 1229, 2041, 1693, 1861, 2192, 2235, 2654, 2237, 2562, 1758, 2038, 1138, 1517, 776, 564, 295, -13, 438, -118, 251, -413, -341, -719, -516, -364, -348, -343, -449, -132, -247, 65, -204, 161, 1, 341, 451, 502, 490, 82, 246, 226, 718, 684, 727, 413, 519, 372, 569, 657, 684, 683, 367, 611, 703, 846, 603, 235, 69, -7, 27, 41, 75, 80, 176, 111, 71, 175, 166, 348, 197, 307, 235, 17, -99, -433, -346, -561, -653, -657, -870, -933, -1319, -1385, -1550, -1557, -1606, -1756, -1772, -1909, -1761, -1929, -1991, -2233, -2219, -1948, -1712, -1295, -1391, -1319, -1507, -1335, -1271, -1211, -1256, -1373, -1260, -1279, -1141, -1362, -1389, -1553, -1364, -1214, -848, -475, -99, 285, 275, 380, 430, 663, 983, 1200, 1413, 1628, 1464, 1820, 1754, 1880, 2005, 2098, 2565, 2383, 2297, 2197, 2174, 2293, 2242, 2104, 1901, 1676, 1468, 1301, 1122, 1104, 1112, 922, 1013, 938, 991, 1030, 1000, 1202, 828, 738, 677, 658, 821, 551, 621, 354, 178, 25, -366, -363, -475, -312, -320, -380, -465, -785, -827, -714, -430, -496, -601, -709, -770, -829, -969, -854, -1074, -1226, -1478, -1447, -1291, -1371, -1228, -1251, -808, -566, -293, -169, -196, 110, 153, 591, 714, 934, 745, 354, 292, 177, 329, 48, 50, -39, -147, -278, -426, -314, -384, -300, -179, 8, -49, -314, -394, -250, -38, 57, 176, 308, 266, 26, -198, -270, -267, -281, -312, -495, -689, -760, -818, -878, -891, -1025, -1040, -883, -700, -450, -369, -536, -299, -111, -244, -51, 75, 137, 317, 256, 294, 570, 365, 367, 560, 266, 207, 685, 256, 301, 532, 140, 657, -137, 149, 244, -335, -198, -639, -386, -4, -455, -30, 355, 194, 828, 449, 860, 1196, 571, 922, 747, 767, 909, 561, 114, 762, 136, 176, 391, -247, 263, -356, -269, -309, -364, -571, -76, -441, -341, -329, -776, -4, -281, -286, 94, -366, 256, -500, -40, -236, -367, 142, -480, -4, 318, -194, 70, 219, 145, 308, 9, -110, 547, 158, 243, 413, 745, 1214, 716, 820, 511, 421, 413, 83, 429, 241, -653, 142, -777, -505, -912, -1379, -680, -1308, -791, -1092, -483, -532, -759, -77, -187, 433, -16, 48, 821, -38, 852, 410, 372, 1196, 922, 705, 769, -345, 614, 279, -421, 328, 317, -202, 867, -812, 34, -303, -1013, 917, -531, -931, -1022, -412, -740, -840, -877, -69, -764, -744, -307, -586, 24, -812, 196, -34, -4, 106, 43, -81, 374, 567, -276, -52, -457, 607, -415, 403, -578, 991, -363, 5, 708, -768, 1247, -384, 207, 34, 631, 126, -85, 772, 385, 536, 197, 410, 591, 749, 52, 824, 346, 600, 622, 153, -240, -39, 23, -928, -22, -474, -628, -257, -546, -23, 157, -250, -95, 106, 478, 504, -86, 901, -231, 464, 258, -344, 109, 11, 267, -661, -44, -541, -524, -545, -1283, -611, -339, -1012, -617, -1131, -874, -582, -1056, 82, -759, -577, -404, -483, -250, -59, 268, 645, 1043, 691, 952, 352, 721, 1032, -27, 637, 71, 431, -294, 475, -81, 256, 359, -694, 1260, -561, 373, 875, 21, 1413, 675, 96, 1812, -251, 1174, 514, -103, 906, -530, 478, 68, -810, 768, -921, -606, 508, -1273, -412, 489, -1617, 904, -838, -846, 237, -590, -865, -711, -213, -1415, 531, -1590, -181, -376, -1269, 623, -260, 342, 720, 161, -227, 789, -364, 231, -367, -296, 302, -1498, 581, -1142, 66, -795, -144, -152, 552, 358, 704, 1224, 175, 1417, 82, 626, 34, 1209, -454, 480, -57, -240, 937, -977, 942, -475, 280, 688, 674, 850, 401, 647, 746, -157, 176, 354, -572, 763, -547, -368, -875, -521, -1381, -313, -573, -562, -148, -717, -43, 521, -252, 355, -1, -298, 510, -312, -424, 100, -1260, -547, -644, -1516, 128, -891, 91, 84, 184, 880, 50, 758, 851, 863, -5, 465, 215, 19, 267, -752, 476, -473, 249, -706, 598, -651, 561, 108, 43, 289, 362, 86, 137, 300, 560, 529, -256, 459, 315, -403, -147, 191, -177, 25, 23, -258, -568, -227, -324, -101, -265, -572, 48, -286, -678, 204, -371, -95, 170, -812, 13, -112, 35, 760, -112, 174, 430, 229, -68, 944, 371, 642, 343, 474, 675, 272, 169, 690, 48, 118, -836, -353, -424, -1114, 0, -1700, 549, -1010, -614, 592, -1258, 504, -125, 104, 309, 204, -196, 625, -407, 1036, -572, 187, 1013, -535, 722, -796, 250, -655, 134, -1010, 29, 458, -645, -63, 223, -6, 621, 355, -311, 1036, -523, -139, -469, -130, 247, -324, 679, -338, 462, 274, 45, 339, 90, 15, 926, -715, 724, 23, -747, 1070, -323, 750, -40, -524, 202, -1010, 22, -229, -825, 667, -770, 204, 376, 715, 510, 367, 66, 1083, -499, 146, 429, -1540, 515, -1127, -180, -214, -508, -30, -360, 256, -800, 455, -631, 548, 71, -699, 252, 110, 82, 380, 228, -97, 1146, -873, 826, 112, 266, 706, -118, 1204, 343, -349, 837, 7, -290, 751, -840, 88, 29, -943, 163, -589, -365, -218, 233, -370, 706, -43, -568, 619, -507, -23, 500, -362, 85, -132, -857, 509, -505, -391, 284, -1070, 274, -611, -961, 898, -1696, 669, -79, -1212, 862, -889, -496, 484, -564, -156, 597, -1255, 619, -6, -296, 1067, -721, 757, -366, 140, -426, 131, 563, 390, 665, 378, 188, 63, 659, -341, 917, 301, -87, 578, 416, 347, 1112, 750, -97, 1323, 752, -4, 1081, -415, 870, 909, -353, 230, 642, -151, 621, 394, -957, 1188, -987, -374, 2, -826, -244, -329, -959, -492, -581, -1290, 12, -1741, -56, -722, -1416, -265, -1089, -1103, -433, -737, -758, 390, -1111, 43, -394, -836, 357, -1008, 368, -371, -111, -6, 27, 238, 174, 707, 812, 789, 682, 886, 100, 1002, 1030, 476, 930, 281, -39, 963, -319, 1157, 261, -248, 1355, -362, 530, 14, 180, 315, 874, -281, 442, 364, -187, 479, -86, -396, 498, -71, -534, 261, -281, -613, 641, -406, -658, -25, -693, 221, -18, -1228, 575, -1006, -530, 73, -1030, 116, -811, -119, -496, -772, -506, -682, -398, -178, -619, -652, -92, -262, -171, 253, -697, 802, 30, 373, 225, 4, 334, -86, 333, 561, -240, 407, 308, 925, 317, 240, 523, 719, 739, 110, 1194, -440, 1259, 274, -426, 1371, -90, -35, 289, -325, -34, 337, -525, -460, 594, -642, -166, 143, -427, 642, -316, 197, 172, -312, -211, 418, -7, -430, 430, -907, 163, -38, -259, 63, -561, 416, -368, -602, 63, -591, -284, 58, -12, 149, -53, -491, -13, 140, -638, 109, -238, -620, -23, -153, 140, 502, 44, 392, 180, -29, 91, 174, -597, 478, -340, 446, -322, 431, 139, -693, 1331, -547, 493, 26, -458, 360, -253, -314, -61, 61, -486, -49, -528, 420, -272, 196, -142, -603, 1064, -1052, 632, 77, -388, 1090, -704, 393, 302, -305, 262, 230, 243, -359, 544, -329, 334, -65, 32, 596, -137, 465, -277, 561, 52, -80, -18, 35, -53, -176, 66, -647, 393, -222, -466, 46, -528, -10, -398, -558, 182, -16, -264, -344, 610, -25, -384, 836, -424, 600, 130, -267, 479, 197, -282, 1011, -380, -251, 506, -583, 845, -370, 222, 405, -78, 283, -31, -16, -428, 520, -691, 444, -747, 205, 17, -600, 164, -326, -138, -125, -46, -90, 472, -446, 33, 172, -375, 150, -397, 343, -171, 31, 42, -197, 61, 129, 143, 12, 393, 399, -241, 260, 289, 38, 609, -440, 830, -509, 26, 142, -262, -202, -414, -216, -399, -55, -873, 334, -387, -625, 364, -1297, 721, -91, -221, 654, -15, -302, 975, -468, 141, 852, -1184, 1200, -265, 275, 512, -121, 352, -236, 303, -261, 311, -733, 130, 235, -607, 1029, -891, 761, 203, -601, 391, -555, 201, 31, -275, 135, 439, -260, -155, 764, -596, 448, 274, -199, 239, -417, 342, -356, 559, -849, 256, 328, -884, 222, 68, 20, 573, 32, -62, 225, -15, -184, 196, 146, 68, 175, 101, -849, 1134, -749, 169, 360, -565, 675, -760, -144, -90, -441, -38, 343, 324, 12, 13, -19, 375, -277, 357, 49, 22, -7, -315, 324, -1080, 472, 209, -79, 565, -196, -443, 568, 55, -180, 546, -842, -162, 476, -1192, 9, 34, -702, 512, -759, -21, -72, -720, 593, -730, 1268, -861, 300, 42, -481, 397, -183, 357, -785, 1558, -1646, 1151, -111, -1090, 1478, -810, 416, 167, 35, -126, 526, -347, 478, -28, 194, 395, -494, 717, -770, 746, -374, 99, 345, -73, -95, 486, -203, 164, 472, -364, 360, -41, 11, -179, -41, 101, 183, -322, -38, -405, 112, -11, -922, 1022, -1165, 390, -36, -864, 757, -34, -565, 1061, -195, -582, 1614, -1799, 1067, -13, -916, 1020, -855, 152, 473, -1037, 576, 268, -686, 749, -533, -572, 1045, -969, 90, 874, -1163, 342, 103, -978, 1297, -568, -114, 1208, -1094, 649, 608, -1085, 1211, -559, 154, 558, -481, 346, 32, 82, -481, 806, -915, 733, -391, 87, 480, -1058, 977, -408, -61, -194, 382, -798, 901, -1339, -121, 1420, -2667, 2008, -1232, -438, 1038, -985, 71, 1025, -1076, 629, 1168, -2268, 1684, -713, -141, 532, -89, 99, -117, -201, 270, 410, -674, 302, -52, 199, -406, 45, 265, -222, 575, 300, 271, -464, 192, 571, 68, -42, -156, 88, 28, -54, 286, -279, -21, 242, 590, -738, 16, 519, -447, 812, -459, -282, 752, -1010, 146, -449, -31, 156, -382, 119, -526, 311, 303, -763, 461, 57, -157, 312, -729, 63, 266, -152, -232, 387, -648, 109, 38, -522, 730, -548, 72, -436, 458, 61, -132, 314, 86, 175, 72, 399, -924, 1212, -688, 272, 481, -863, 72, 27, 209, -89, -37, 283, -270, 773, -674, 427, 25, -535, 922, -823, 636, -553, -12, 289, -480, 927, -321, -261, 175, -325, 284, -131, -770, 698, -74, -728, 487, -408, 276, 185, 254, -249, 456, -622, 250, 293, -388, 231, 179, -991, 773, -479, -316, 30, -310, 258, 200, -608, -109, 820, -78, -300, 483, -474, 471, 209, -389, 272, -95, 203, -171, 92, -506, 390, 190, 496, -126, 16, 457, -436, 855, -293, -469, 1137, -1061, 656, -150, -330, 485, 7, -733, 1270, -887, -300, 631, -785, 1092, -562, -101, -174, 529, -3, -918, 747, -1145, 908, -550, -366, 521, -394, -107, 115, 461, -572, 153, -106, -334, 588, -987, -51, 1058, -1459, 828, 9, -810, 945, -160, -569, 1017, -536, -161, 139, -27, 119, 60, -456, 258, 424, -353, -135, 52, 462, -476, 169, -45, 291, -179, 462, -454, 144, 659, -872, 593, -303, -129, 1094, -1290, 441, 392, -471, 377, 107, -293, 228, 361, -890, 813, -200, -512, 892, -735, 11, 644, -699, 184, 270, -690, 568, -10, -592, 341, -319, 449, -290, -249, 577, 13, -361, 89, -324, 388, 305, -433, 100, 268, -419, 222, -461, -77, 583, -301, -158, -112, 239, -237, 704, -471, 469, -337, -192, 902, -1214, 1124, -717, 69, 1111, -1602, 584, -61, -796, 1242, -791, -152, 697, -531, 29, 431, -490, 368, 366, -709, 710, 25, -865, 930, -153, -160, 248, -403, 484, -9, -703, 1189, -445, 102, -74, -405, 720, -771, 127, -15, -483, 301, -231, -537, 338, 26, 194, -220, -438, 783, -102, -409, 718, -693, 626, 77, -1078, 903, -312, -59, 404, -359, -90, 517, -299, -168, 687, -703, 592, 76, -691, 641, -415, 589, -796, 234, 170, -433, 161, -152, 22, 511, -317, -25, 912, -936, 709, -319, -347, 1079, -910, -80, 372, -483, 219, 526, -1259, 732, 305, -401, 625, -653, 288, 573, -81, 29, 325, -846, 1034, -590, 70, -272, -242, 724, -689, 69, 167, -411, 485, -329, -449, 898, -855, 279, -297, -222, 382, -209, -393, 41, 615, -935, 772, -542, 39, 582, -279, 218, -97, 10, 62, 207, -344, 503, -591, 711, -551, -18, 630, -787, 1112, -711, -139, 478, -58, -322, 459, -249, 156, 327, -280, -67, 217, -110, 109, -136, 196, -488, 320, -56, -475, 1079, -1359, 927, -34, -281, 169, -487, 665, -998, 1497, -1742, 1101, -82, -780, 1143, -1042, 689, -295, 178, -728, 746, -898, 621, -314, 122, -140, -2, 251, -749, 919, -930, 579, 14, -161, -528, 641, -397, 223, -17, -267, 393, -84, 77, -211, 730, -1047, 1129, -714, 254, 320, -67, -4, -61, 766, -640, 858, -920, 1031, -557, 341, 38, -348, 713, -800, 891, -989, 842, -398, -75, 2, -171, -120, -58, -114, 225, -24, -466, 426, -563, 354, -575, 507, -221, -49, -294, 510, -304, -530, 1068, -976, 858, -681, 352, -376, 267, 422, -537, 457, -559, 531, -302, -211, 401, -263, 724, -688, 484, -67, 18, -32, -111, 278, -313, 499, -536, 283, 155, -543, 1091, -829, 642, 152, -660, 281, 192, -620, 388, 134, -547, 1105, -1254, 575, 335, -1010, 682, 342, -984, 851, -263, -276, 567, -849, 950, -447, 173, -346, 164, -420, 182, -116, -320, 310, -284, 394, -506, 29, 253, -10, 114, -753, 891, -474, -95, 83, -38, -125, 474, -681, 376, 470, -1217, 1046, 228, -1356, 1361, -272, -351, 900, -694, 244, 447, -478, -107, 1032, -998, 705, -221, -239, 454, -510, 1010, -1138, 739, -155, -150, 439, -769, 477, 549, -592, -466, 1197, -1207, 565, -195, -412, 1009, -1144, 362, 345, -270, -409, 732, -280, -136, 360, -789, 921, -534, 119, 162, -451, 708, -757, 772, -619, -250, 996, -596, -298, 78, 567, -631, 390, -433, 404, 422, -723, 108, -253, 696, -1373, 1433, -720, -78, 547, -597, 443, 21, -376, 505, 44, -429, 559, -569, 268, 80, -32, 497, -960, 352, 24, -118, -117, 670, -819, 694, 24, -797, 1352, -1441, 775, -159, -25, -286, 277, -51, -605, 1098, -507, -6, 244, -538, 597, -231, -509, 27, 874, -717, 233, 239, -502, 599, -43, -404, -21, 478, -907, 1227, -936, -69, 1214, -1188, 816, -277, 177, -562, 550, 110, -733, 452, -699, 949, -305, -7, -258, 788, -391, -347, 764, -1180, 1106, -792, 397, -60, 67, 15, -458, 1120, -739, 252, -201, -115, 363, -235, 413, -546, 581, -49, -437, 933, -934, -4, 357, -283, 131, -173, -107, 346, 266, -739, 495, -55, -327, 162, -303, 37, 247, -24, -108, -362, 584, -333, -99, 67, -240, 412, -335, -240, 496, -613, 630, -335, -33, 365, -425, -413, 508, -213, 360, -330, -3, 618, -698, 424, -6, -212, 310, -278, 180, 276, -579, 298, 439, -19, -200, 493, -273, -114, 834, -1291, 965, -13, -665, 623, -92, -484, 276, 484, -1013, 1068, -627, -331, 647, -702, 772, -539, -7, 427, -347, 373, -731, 416, -68, -352, 436, -503, 123, -49, 10, 284, -441, 414, -813, 1401, -1202, 407, -15, -574, 794, -383, -235, 369, -138, -7, 182, -482, 383, 95, -379, 256, 144, -278, 249, 111, -253, 331, -215, 74, 153, -392, 129, -215, 311, -13, -194, 287, -34, -293, 813, -830, 498, 86, -58, 142, 195, -102, -290, 590, -332, 322, -2, -699, 485, 85, -361, 257, -306, 414, -195, 257, -444, 393, -328, -68, 342, -623, 145, -39, -382, 540, -572, 182, 395, -604, 112, 250, -412, 357, -565, 587, -220, -379, 603, -648, 634, -287, -193, 335, 17, -416, 138, 443, -502, 350, 141, -253, 573, -622, 344, 174, -377, 251, -94, 211, -211, 130, 157, -103, 581, -747, 600, -191, 27, 80, -665, 865, -970, 1045, -944, 346, 178, -305, 221, 248, -656, 626, -186, -190, 113, -257, 34, 66, 300, -929, 949, -280, -161, 523, -795, 612, 105, -252, -474, 1157, -1134, 612, -356, -193, 620, -576, 340, -386, 918, -1506, 1273, -212, -469, 476, -294, 206, 168, -482, 484, -282, 323, -355, -149, 874, -1210, 779, -17, -282, 560, -333, -198, 471, -201, -127, 290, -367, 494, -728, 855, -613, 234, -89, -17, 530, -910, 823, -544, 516, -532, 244, 70, -286, 219, -283, 39, 140, -223, -53, 116, 91, -249, 325, -601, 360, 404, -1050, 723, -181, -56, -83, 108, -113, 130, 243, -898, 1238, -821, 209, 48, 177, -317, 153, 202, -490, 622, -594, 407, -112, 133, -56, -162, 476, -395, 464, -255, 127, 151, -34, 90, -124, 250, -186, 25, 32, -122, 15, 62, -223, 302, -156, -100, 177, -266, 271, -239, -46, 295, -623, 779, -639, 127, 291, -887, 1167, -758, -94, 206, -70, 306, -445, 500, -571, 584, -102, -513, 752, -775, 494, -127, 48, -295, 235, -77, -45, 566, -849, 614, -187, 289, -435, 458, -492, 299, 350, -927, 845, -451, 151, 329, -630, 448, -81, -158, 210, -122, -154, 196, -79, -55, 287, -560, 730, -524, 6, 389, -766, 996, -793, 348, -80, -31, -77, 251, -329, 157, 287, -518, 692, -531, 233, -100, 202, -73, -188, 188, 61, -26, -187, -20, 88, 217, -397, 208, 135, -173, 69, 12, -279, 566, -438, 316, -140, -158, 593, -737, 522, -254, 111, -264, 116, -146, 141, -178, -161, 626, -852, 664, -333, 165, 26, -455, 589, -276, 6, 15, 72, -142, 429, -636, 542, -30, -258, 400, -309, 327, -116, 1, 65, 247, -566, 612, -409, 177, 94, -461, 716, -586, 45, 282, -117, -252, 624, -886, 737, -305, -309, 665, -693, 335, -249, 264, -527, 613, -657, 469, -341, 368, -449, 200, 204, -585, 802, -792, 430, 68, -222, -195, 516, -415, 100, 236, -398, 609, -310, -36, 106, 128, -249, 92, 122, -117, 54, -285, 373, -54, -311, 579, -456, 287, 47, -226, 298, -174, 137, -51, 229, -335, 282, -259, 197, -102, -140, 403, -481, 542, -398, -75, 439, -363, 76, -36, 139, -292, 268, -239, -202, 461, -459, 358, -58, -352, 308, 123, -484, 340, 74, -347, 422, -296, 75, 64, -197, 101, 112, -306, 63, 288, -385, 73, 168, -92, 149, -62, -67, 244, -8, -34, 40, 199, -235, 136, 137, -318, 90, 144, -245, 203, 32, -497, 638, -273, -309, 599, -629, 236, 193, -347, 110, 36, -104, 122, 6, -359, 549, -343, 148, -217, 138, 300, -559, 449, -195, 174, -79, -20, -118, 511, -630, 380, 98, -543, 627, -550, 424, -169, 82, -45, 128, -217, -9, 311, -598, 577, -479, 374, -321, -1, 270, -421, 354, -475, 587, -422, 218, -86, -34, 150, -445, 630, -519, 480, -212, 100, 56, 45, 44, 7, 110, -199, 379, -522, 536, -373, 193, 67, -235, 280, -302, 381, -416, 237, -145, -77, 137, -42, -60, -6, 26, -148, 77, -175, 122, -208, 335, -555, 307, 28, -383, 371, -273, 92, -125, 259, -541, 667, -587, 298, 77, -206, 314, -427, 633, -589, 569, -333, 215, 131, -332, 746, -704, 519, -242, 210, -16, -255, 433, -322, 305, -291, 159, -94, 63, -58, -9, 81, -481, 568, -480, -46, 420, -591, 455, -226, 14, 7, -145, 268, -396, 637, -487, 240, 78, -263, 253, -305, 450, -684, 681, -620, 319, 59, -286, 221, -14, 112, -312, 566, -600, 414, 21, -230, 159, 82, -239, 343, -256, -22, 233, -281, 274, -368, 546, -583, 529, -268, -83, 531, -604, 549, -361, 310, -353, 334, -242, 9, 175, -411, 433, -435, 190, 9, -104, 109, -181, 184, -176, 195, -308, 253, -279, 151, 97, -384, 326, -134, -97, 247, -344, 276, -205, 79, -45, 89, 49, -201, 403, -434, 283, -55, -87, 213, -151, 169, -100, 127, -186, 246, -22, -201, 312, -128, -225, 455, -348, 96, 244, -283, 49, 104, -32, -249, 522, -597, 339, 81, -375, 349, -158, 49, 6, -17, 45, -172, 235, -353, 385, -296, -2, 223, -295, 260, -255, 91, 9, -39, 21, -164, 110, -110, 89, -176, 239, -260, 96, 165, -363, 493, -395, 204, 131, -257, 251, -65, 145, -198, 435, -344, 199, 139, -292, 193, -9, -68, -27, -44, -123, 138, -160, 146, -302, 336, -301, 67, 245, -341, 153, 244, -477, 534, -362, -49, 357, -413, 263, -236, 256, -293, 277, -180, -5, 348, -595, 749, -654, 461, -174, -77, 292, -553, 647, -553, 275, -114, -34, 197, -300, 420, -542, 536, -395, 32, 313, -514, 484, -155, -193, 266, -139, 48, -104, 226, -165, 100, 128, -297, 370, -166, 18, 18, 159, -303, 384, -203, -132, 361, -400, 278, -101, 72, -170, 127, -68, -90, 146, -78, 4, 122, -216, 149, -14, -128, 210, -208, -57, -4, 72, -200, 212, -84, -55, 125, -120, -21, 165, -209, 134, -70, 64, -144, 58, 6, -42, 80, -77, 148, -286, 372, -192, 8, 280, -211, 95, 196, -253, 175, 5, -164, 166, -156, 80, -154, 91, -31, -106, 299, -336, 394, -318, 184, -5, -114, 83, 75, -207, 172, -136, 10, 261, -391, 458, -352, 90, -49, 159, -308, 340, -117, -231, 538, -506, 305, -91, 28, -115, 272, -256, 3, 295, -379, 294, -212, -49, 78, -211, 110, -129, 29, -64, -59, 152, -190, 90, 82, -145, 176, -92, 53, 21, 84, -109, 158, -22, 72, -55, 186, -86, -108, 295, -398, 379, -261, 62, 162, -231, 128, -26, -123, 227, -178, 140, -166, -5, 246, -476, 591, -458, 72, 404, -699, 669, -243, -182, 354, -266, 128, -134, 119, -152, 87, 100, -319, 436, -511, 226, 34, -151, -117, 358, -319, 106, 239, -423, 319, -93, -25, 57, 21, -143, 188, 163, -385, 350, -212, 8, 129, -191, 197, -203, 95, 80, -211, 275, -201, 140, 148, -417, 481, -242, -55, 148, -22, -135, 182, -93, -132, 229, -179, -3, 183, -196, 64, 124, -237, 286, -275, 166, -128, 50, -105, -14, 70, -156, 182, -102, 47, -57, 124, -217, 302, -110, -66, 164, -212, 213, -134, 33, 38, -15, 32, -6, -84, -1, 72, -39, -30, 129, -103, -103, 375, -379, 317, -85, -89, 89, -19, -10, 27, 64, -143, 241, -262, 242, -272, 225, -165, -75, 241, -458, 493, -346, 120, 3, -65, -33, 143, -332, 293, -323, 228, -52, -227, 417, -385, 218, 46, -204, 132, 92, -298, 355, -197, 73, 211, -176, 340, -388, 476, -358, 195, -169, 52, -81, -12, 119, -307, 373, -401, 301, -120, 121, -274, 523, -560, 356, -9, -345, 544, -433, 234, -16, -68, -103, 124, -111, 107, -131, 222, -212, 42, 340, -561, 502, -183, -136, 271, -331, 132, 29, -187, 295, -271, 217, -181, -11, 98, -240, 314, -278, 116, 34, -105, 128, 47, -91, 121, -23, -208, 342, -446, 335, -306, 263, -74, -46, 125, -184, 223, -140, 132, -54, 109, -137, 304, -413, 419, -191, -85, 365, -571, 571, -415, 95, 149, -278, 173, -143, 62, -36, -4, 24, 39, 8, -13, 60, -66, 69, 92, -75, 72, -55, 19, 35, -56, 93, -167, 66, 9, -109, 125, -8, -233, 378, -166, -243, 432, -453, 165, 264, -585, 467, -200, -115, 249, -273, 190, -136, 131, -194, 179, -60, -106, 286, -266, 352, -277, 249, -170, 116, 30, -8, -14, 1, 48, -277, 385, -419, 286, -3, -295, 392, -173, -181, 475, -457, 279, 67, -361, 458, -388, 169, -118, 27, -77, -43, 29, 3, -66, 87, 43, -200, 362, -356, 192, 44, -322, 416, -312, -59, 350, -383, 156, 159, -331, 340, 7, -276, 456, -353, 249, 67, -207, 291, -144, -50, 256, -417, 268, 44, -464, 684, -635, 218, 140, -350, 361, -104, -146, 172, -86, -80, 180, -228, 88, 40, -158, 198, -358, 216, 76, -321, 401, -337, 203, 123, -330, 380, -102, -63, 199, -117, -18, 131, -168, 106, -144, 121, -112, -31, 114, -229, 296, -249, -72, 305, -248, 69, 66, -133, 235, -158, 77, 78, -173, 255, -209, 53, 14, -173, 177, -52, 17, -33, 122, -246, 134, 47, -240, 294, -191, -85, 349, -387, 299, 69, -293, 408, -245, 21, 98, -149, 77, 113, -260, 272, -262, 210, -82, -30, 161, -149, 63, -66, 83, -231, 347, -391, 199, -31, -44, 77, -54, 26, -102, 247, -310, 358, -307, 130, -70, 53, -13, -116, 233, -289, 179, 0, -75, 77, 38, -18, 10, 38, -31, 49, -42, -77, 130, -229, 157, -83, -40, 150, -190, 165, -90, 15, -32, 31, -59, -82, 206, -270, 245, -108, -19, 151, -132, 75, 100, -155, 172, 4, -119, 285, -257, 94, 9, -149, 177, -48, -153, 261, -319, 183, -61, -135, 299, -244, 254, -93, 39, -7, 90, -125, 44, -17, -94, 100, -206, 114, -25, -72, 71, 51, -223, 270, -87, -89, 228, -112, 51, 106, -137, 106, 37, -81, 132, -207, 87, -115, -33, 33, -49, -70, 73, -88, -36, 160, -202, 254, -104, 43, -26, 22, -209, 245, -179, 12, 170, -296, 278, -185, 101, -137, 246, -233, 186, -63, -152, 316, -437, 511, -397, 182, 83, -279, 339, -170, 46, 137, -139, -10, 168, -173, 124, 132, -285, 325, -146, -91, 260, -280, 175, -29, -132, 144, -101, 19, -3, 57, -44, 82, -29, -46, 164, -261, 263, -114, -182, 305, -329, 133, -8, -98, 64, 44, -192, 154, -103, -136, 315, -329, 278, 9, -127, 288, -152, -9, 156, -250, 45, 92, -325, 201, -110, -131, 224, -179, 77, 82, -130, 152, -168, 79, -9, -147, 165, -3, -62, 157, -78, -73, 347, -426, 245, 51, -215, 292, -127, -58, 210, -157, 26, 257, -377, 305, -109, -49, 240, -229, 137, -85, 54, 4, -33, 20, 80, -141, 91, -33, -144, 114, -122, -50, 117, -69, -104, 213, -231, 173, -23, -82, 205, -193, 140, 2, -130, 156, -93, -56, 142, -152, 38, 71, -97, 26, 37, -205, 246, -163, -20, 171, -228, 278, -145, -86, 200, -158, 99, -31, -110, 224, -167, 72, 28, -93, 16, 122, -130, -30, 223, -248, 250, -158, 41, -30, 36, -36, -33, 73, -172, 181, -119, 93, -112, 2, 89, -96, 74, -24, -22, 80, -82, 83, -50, -56, 59, -92, 37, -20, -77, -54, 163, -146, 177, -50, -5, 88, -71, 50, 46, -70, 58, -26, -43, 179, -153, 74, 20, -38, 12, 53, -159, 90, -8, 6, 65, -7, 30, -82, 93, -50, -20, 41, 68, -79, 92, -129, 34, 116, -48, 9, 16, -30, -8, 54, -190, 144, -53, 9, -5, -53, 13, -117, 51, -17, -40, 90, -80, 28, 94, -81, 75, 46, -32, -86, 102, -69, -102, 228, -204, 102, 85, -134, 47, -97, 0, 62, -8, -53, 55, 9, 13, 36, -40, -56, 178, -138, 73, -39, -109, 42, -24, 21, -26, -3, -53, 159, -101, -55, 133, -116, 98, 99, -231, 65, 95, -80, 187, -93, 51, -75, 19, 78, -81, 117, -235, 250, -51, -24, 78, -92, 3, 53, -20, 45, -20, -76, 35, -3, -31, 85, -145, 74, 27, -92, 140, -139, -47, 142, -142, 25, 166, -205, 196, -142, -21, 160, -171, 3, 48, -91, -5, 31, -8, -38, 55, -67, 7, 71, -129, -4, 35, -40, -58, 122, -254, 210, -8, -132, 142, -32, -7, 190, 16, -127, 296, -247, 172, 68, -146, 143, -114, -62, 81, -116, -5, 55, -48, 157, -111, 141, -85, 56, -19, 22, 11, 25, -93, -21, 113, -193, 170, -215, 127, -53, -6, -24, 24, -140, 189, -31, -63, 148, -232, 224, -137, 3, -24, 10, -9, 34, -56, 1, -4, 6, 85, -173, 152, -73, -48, 58, -36, -5, 96, -86, -24, 155, -228, 138, 15, 6, -39, 90, -43, 19, 129, -109, 116, -51, 91, -120, 139, -129, 42, 86, -167, 150, -9, -105, 62, 19, -70, 52, -37, -7, 91, -92, 46, 70, -60, 17, 64, -109, 19, -32, 22, -64, -1, -26, -55, -72, -13, -10, -78, 44, -94, 225, -180, 70, 19, 8, -6, 59, 78, -117, 112, -48, -7, -106, 114, -90, 0, 2, -177, 166, -127, 5, 103, 34, -132, 233, -67, -6, 121, -105, 162, -46, 60, -16, 0, -64, 105, -117, 95, -102, 57, 62, -94, 211, -24, -11, 58, 71, 39, -55, 37, -21, 64, -83, 45, -23, -31, 44, -63, 27, -144, 57, -51, 5, -62, 33, -100, 0, 0, -65, 61, -160, -2, -48, -51, 59, 37, -85, -36, 82, 53, 8, -114, -2, 132, 53, -84, 43, -41, 115, -16, -33, 6, -39, 73, -64, -40, 69, 102, -60, 63, -173, 234, -61, -28, 0, -52, 190, -113, 73, -108, 18, 29, 51, -44, 5, 39, 13, 23, -68, 57, 40, -20, -94, 6, 54, -9, -65, -29, -84, 55, -56, 75, -84, -103, 158, -89, -47, -3, -27, 28, -40, -39, 99, -26, -47, 110, 34, -102, 108, -1, 56, -16, -9, 231, -190, 117, 24, -22, 41, -18, 30, 81, -102, 57, 175, -236, 200, -63, -3, 78, -106, 157, -35, -114, 49, 14, -105, 69, -100, 15, -63, -47, -32, -89, 8, -8, 24, -86, 25, -44, 81, 14, -105, 141, -37, -5, 18, -96, 35, 50, -85, 0, 17, -31, 53, -23, 47, -25, 2, 48, -66, 30, 84, -74, 35, 35, -26, 109, -57, 24, 38, 59, -66, 41, -6, -97, 44, -66, 90, -82, 3, -10, -24, 89, -79, -58, 30, 19, 61, 37, -33, -65, 120, -56, -80, 53, -42, 110, 18, -89, 11, 80, -42, -29, 33, -78, 183, -71, -73, 36, -39, 113, -104, -55, -30, 100, -48, -48, 10, -33, 71, -45, -54, 4, 26, -8, -7, -47, 107, -34, 8, -53, -60, 63, 55, -51, 41, -42, -120, 230, -143, 54, 119, -45, 58, 4, -111, 96, 41, -71, 117, -69, 18, 20, -6, -32, 15, 27, 25, -27, 20, 6, -34, 41, -84, 66, 7, -21, 31, 6, -35, 42, 7, -36, 2, -58, 28, -82, -4, -56, 48, -102, -36, 11, 12, 53, -103, 5, 4, 82, -44, 91, -69, 63, 82, -85, 84, -6, 5, 52, -37, -47, 92, -66, 88, 4, -34, 45, -48, -1, 31, -17, 28, 86, -86, 69, -31, -15, 61, -71, -44, 6, 4, -50, 25, -60, 25, -1, -59, 26, -46, 7, 29, -39, 2, -44, -69, 76, -80, -1, 40, 6, 15, -31, -82, 6, 62, -15, 12, -17, -2, -17, 53, -19, -13, 38, 13, 16, 65, -68, -7, 1, -46, 80, 25, -25, 38, 35, -63, 65, 0, 19, 53, -46, 85, 10, -72, 82, -9, -19, 12, 16, 76, 21, 29, -1, -13, -79, -34, 13, 26, -15, 26, 7, -29, 9, -75, -25, -7, -9, -55, -21, 16, -55, 16, -11, -59, 9, 23, -62, 42, 37, 3, 21, -116, -88, 24, -6, -21, 69, -68, 2, 94, -30, 43, 47, -55, 73, 37, -62, 68, -50, -76, 61, -9, 19, 84, -35, -5, 4, -54, -41, 36, -13, 4, 6, -71, 41, 27, 1, 4, 56, -12, 55, 7, -46, 59, -6, -20, -6, 6, -75, 75, -1, -12, 32, -20, -17, -3, 68, -64, 14, -47, -10, 30, -11, 17, 45, 11, -3, 45, -19, -4, -12, 44, -9, -13, -9, -54, 29, 17, 9, -8, -28, -39, -6, -8, 3, 19, -38, -8, -20, -40, -35, 21, 33, 24, -39, -49, -26, -3, -10, -19, -29, -21, 11, 18, 8, 19, 15, 16, 61, 17, 25, 22, -4, 12, 58, 10, 16, 18, -23, 14, 23, 25, 16, -18, 6, 10, 41, 3, 8, 19, 53, 17, -44, -58, -24, 36, -25, -11, -34, -16, -12, -18, -16, -30, -20, -7, 20, 14, -13, -89, -37, -44, -38, 45, -34, 10, 46, 0, 22, 18, -50, -23, 28, 0, 2, -13, 15, 34, 11, 15, 28, 11, 21, 18, 25, 49, -29, -15, -13, 22, 1, -17, 70, 31, 47, 39, -26, 15, -8, -57, 15, -37, 4, 67, -10, -8, -26, 14, 9, -18, -5, -20, -18, 31, -1, -10, 15, -28, 7, -26, -24, 23, -16, -22, 10, -14, -38, 7, 6, 4, -15, -45, -66, -6, 14, 37, 17, 6, -9, -13, 32, -21, 4, -22, -6, 15, -15, -7, 41, -2, 36, 22, -53, -17, -26, 11, 22, 2, 11, 34, 12, -14, -11, -5, 35, 25, 19, 25, 0, 6, -26, -14, 5, -21, -9, -4, -15, 14, 4, 29, 15, -2, -7, -24, -12, 21, 27, 10, 39, 25, 22, 16, 11, 9, 16, 19, -32, -11, 11, -7, 8, -13, -38, -35, -48, -57, -4, 15, 6, -4, -19, -28, -12, -2, 22, 15, -1, 3, -15, -24, -47, -58, -39, -25, 2, 1, -24, -15, 19, 9, -4, -34, -36, -18, -30, -1, 8, 3, 17, 25, 7, 13, 0, 40, 42, 27, 52, 46, 40, 39, 35, 42, 20, -19, -6, 8, 8, 1, 16, 16, 20, 22, 22, 7, 10, 11, -23, 0, -17, -25, -17, -50, -17, -13, -42, -21, -21, -44, 7, 24, 35, 41, 12, 20, -24, -46, -42, -13, 0, -12, 2, 24, 10, -2, -14, -20, -8, -6, -8, -23, -6, 25, 23, 38, 57, 15, -11, -30, -30, -1, -16, 20, 20, -3, 0, -14, -3, -18, -11, -14, -33, -32, -16, 23, 1, -16, -5, -10, -3, 1, -30, -25, -9, 0, 33, 31, 28, 21, 12, 11, 12, -28, -28, -6, -2, 25, 26, 25, 17, 9, 1, -18, -13, -15, -11, 10, 6, 22, 38, 29, 35, 22, 11, -10, -8, -4, 6, -4, -22, -2, -10, 17, 22, 17, -1, -6, 11, 8, 10, 5, 5, -18, -48, -30, -2, 2, 8, -12, -12, 2, -20, -15, -11, -10, 2, 15, 15, 4, 9, 7, 20, 14, -15, -5, 26, 14, 20, 25, 26, 18, -1, -4, 0, -8, -17, -29, -38, -29, -31, -25, -18, -15, 0, -7, -27, -14, -12, 5, 2, -8, -6, -19, -18, -3, -16, 8, 21, 25, 18, 14, 39, 25, 4, 12, 31, 17, -11, -16, 12, 27, 11, 8, 11, 2, 1, -15, -2, -7, -6, -8, -27, -13, -3, 1, -19, -34, -38, -14, 22, 24, 25, 21, -5, -17, -33, -39, 8, 6, -2, 4, 8, 24, -4, -4, 2, -1, -15, -39, -48, -31, -3, -10, 0, 17, 41, 47, 25, 13, 13, -22, -32, -17, -15, -4, 4, 13, 20, 21, 14, 18, 2, 12, 12, 6, 13, 14, 30, 6, -9, -15, -5, 6, -6, -12, -9, 9, 21, 14, 7, -2, -4, 10, -12, -5, 15, -8, -8, -4, -5, -11, -1, 0, -26, -13, 10, 14, 10, 9, -7, -14, -19, -12, -13, -10, -20, -21, -36, -31, -18, -16, -6, -11, -7, -9, 8, 9, -5, -6, 0, 16, 22, 11, 23, 33, 19, 19, 13, 18, 11, 4, -1, 7, 12, 5, -8, -16, 5, 14, 15, 5, -2, 4, 9, 12, -8, -16, -10, -8, -14, -22, -25, -14, -14, -8, -1, -9, -9, -5, 7, 28, 24, 25, 9, 11, 15, -3, 8, -6, 1, 8, -6, 15, 11, -16, -12, -17, -2, -1, -6, 13, 11, 19, 7, -3, 2, -11, 7, 14, 1, 10, -12, -27, -8, 3, -11, -3, -7, -9, -25, -29, -9, -19, -16, -10, -16, -11, -3, 8, 13, 2, -10, -19, -7, 4, 2, -4, 15, 12, 6, 16, 9, 18, 16, 2, 13, 12, -6, -9, -11, 8, 20, 11, 15, 21, 7, 8, 13, 14, 7, 5, 11, 11, 3, 5, -21, -29, -24, -35, -13, 0, 0, -2, -5, -4, -7, -6, 12, 15, 17, 7, -8, -13, -8, -4, -4, 5, 11, 3, -9, -6, -4, -9, -4, 6, 5, 11, 13, 13, 12, 9, 15, -5, -7, 7, 1, -3, -12, -16, -28, -29, -12, -14, -1, 3, 1, -2, -3, -1, -8, -6, 4, 7, 0, -5, 4, 4, 0, 12, 4, 5, 18, 2, -3, 3, -11, -5, 17, 11, 10, 16, 16, 8, -4, -5, -24, -13, -18, -16, 6, -3, -4, -2, 4, 6, 8, 0, 6, 7, 0, -14, -17, -8, -9, -10, 5, -6, -20, -19, -6, 12, 2, 9, -7, -3, 20, 9, 12, 30, 6, 5, 12, 5, 8, -1, 2, -13, -8, 0, 9, 13, 10, 4, 9, 8, -3, 10, -8, 2, 15, -12, 0, 2, -9, -13, -12, -12, -15, -9, -4, 1, 4, -6, 3, 13, 6, 8, 5, 8, 10, 16, 17, 5, -3, -17, -13, -1, 2, -4, -16, -8, -5, -10, -18, -17, -13, -14, 4, 9, 4, -1, -5, -8, 1, -1, -11, -3, -1, -7, -1, -2, 1, 6, 10, 25, 35, 24, 12, 11, 7, 13, 10, 4, -6, -2, 11, -6, -5, -8, -21, -11, -7, 2, -1, -1, 2, -10, -11, -10, -23, -12, -2, 5, -6, -8, -1, -6, -1, 2, 5, 3, 11, 5, 8, 17, 12, 8, 5, 16, 20, 3, 0, -2, 2, -1, -6, 4, 2, 10, 20, 10, 3, 7, 0, 4, 13, 10, -1, 2, 8, -9, -7, 4, -1, -12, -1, -9, -29, -20, -16, -14, -11, -15, -18, -12, 0, -9, -15, 4, 7, 3, 8, -8, -8, -7, -10, -1, -1, 2, 1, 5, 14, 13, 18, 8, 8, 6, 1, 5, 11, 5, -3, 13, 5, -7, -3, -6, -9, -2, -10, -10, -12, -4, -7, -16, -13, -23, -7, 4, 10, 15, 13, 6, 17, 26, 16, 18, 2, 5, 5, -11, -14, 2, 5, 0, -9, -3, 11, 8, 13, 2, -12, -5, -2, -1, 7, 15, 5, -8, 1, 0, -6, -2, -1, -5, 0, 5, -5, 1, 17, 12, 8, 12, 10, 12, 11, -4, -13, -13, -20, -13, -10, -21, -10, -19, -21, -8, -13, -18, -16, -3, 4, 0, 6, 7, 12, 8, -6, 1, 13, 6, 5, 0, 4, 1, -8, -2, 0, 3, 3, 13, 17, 2, 7, -8, -2, 11, 17, 4, 3, 5, -11, -5, 0, -8, -6, -6, -9, -6, -12, -14, -10, -4, 7, 0, -10, -8, -11, -13, -14, -12, -1, -1, 0, -7, -13, -16, -14, -4, -6, -9, 0, 16, 18, 16, 9, 5, 9, 12, 12, 16, 17, 19, 31, 21, 18, 26, 14, 9, 4, -1, -10, -5, 3, -2, 3, 6, -7, -3, 5, -5, -14, -13, -7, 0, 3, -9, -10, -4, -7, -1, -4, -9, -7, 3, 8, 6, -1, -17, -18, -10, -22, -22, -11, -16, -13, -6, -10, -2, 10, 10, 14, 8, -6, 4, 20, 7, 5, 11, 7, 8, 3, -4, -8, -9, -2, -9, -2, -1, -18, -8, -2, 11, 25, 12, 21, 22, 13, 2, -11, -9, -7, -7, -7, 4, -2, -10, -9, -3, 9, 13, 14, 20, 17, 12, 4, 5, 12, 12, 12, 6, 9, 15, -11, -19, -16, -11, 0, -1, 4, 6, 8, 2, -3, -5, -3, -3, 1, 6, -5, -13, -17, -7, -12, -17, -10, 0, 4, -6, -16, -23, -22, -14, -10, 4, 3, -7, -9, -18, -22, -14, -9, 6, 4, 6, 20, 19, 9, 5, 11, 4, 14, 11, 2, 15, 13, 18, 20, 20, 24, 5, 11, 8, -1, 7, -11, 3, 9, -3, -5, -3, 3, -6, -1, 0, -8, -13, -21, -21, -15, -15, -18, -31, -34, -19, -8, -8, -8, -3, 2, 0, -1, -3, -12, -8, 13, 9, 12, 11, -4, -9, -3, -4, 0, 14, 7, 7, 8, -2, 8, 5, 5, 5, 12, 13, -4, -2, 1, -3, -6, -6, 5, 12, 3, 2, 11, 12, 8, 13, 16, 25, 30, 9, 3, -1, 0, -3, 2, 6, 0, 7, 4, 6, 9, -6, -6, -6, -7, -8, -19, -12, -11, -4, -9, -26, -14, -1, 3, -5, -13, -14, -9, 2, 3, 3, -3, -12, 2, 5, 2, -2, -2, -7, 0, 1, -4, -7, -9, -7, -4, 3, 8, 1, 1, 5, 10, 19, 13, 12, 15, 10, 4, 6, 9, 11, 12, 2, 5, 7, 6, 21, 5, -11, -9, -8, -8, -14, -14, -14, -12, -4, -5, -4, 2, -10, -16, -12, -13, -14, -9, -2, -1, -11, -11, -6, -4, -10, -20, -15, 2, 14, 17, 7, 10, 16, 12, 11, -1, 8, 17, 7, 19, 20, 6, 11, 9, 16, 21, 11, 14, 15, 19, 23, 17, 15, 2, 3, 5, 4, 13, 1, -3, -6, -11, -9, -16, -18, -25, -23, -20, -15, -13, -18, -16, -19, -27, -24, -16, 1, 4, 1, -7, -18, -16, -21, -14, -12, -12, -7, -3, -6, 3, 5, -14, -10, -1, 5, 5, -7, 4, 11, 2, 6, 1, 12, 10, 7, 4, 11, 32, 19, 9, 19, 24, 29, 16, 8, 19, 20, 6, 8, 7, 5, 6, 1, 16, 4, -5, 2, 3, 24, 4, -7, -4, -6, 6, -9, -17, -24, -19, -17, -23, -5, -3, -21, -27, -22, -1, 7, 7, -1, -10, -7, -9, -10, -10, -10, -8, -15, -12, 4, 6, -5, -7, -7, -8, -4, 0, 3, 3, -7, -7, 5, 1, 0, 13, 12, 18, 24, 24, 20, 13, 11, 12, 21, 11, 9, 14, 8, 9, 18, 10, 16, 15, -5, -1, 16, 12, 3, -22, -21, -12, -10, -6, -12, -17, -18, -22, -15, -12, -26, -22, -24, -18, -11, -11, -15, -12, -7, -7, -12, -16, -10, -10, -5, -4, -2, -3, -2, 10, 17, 17, 6, 6, 6, 4, 18, 6, 3, 21, 18, 13, 15, 16, 7, 6, 3, 13, 15, 3, 10, 21, 15, -3, -2, -4, -5, 3, -4, -7, -2, -1, -6, -13, -19, -12, -11, -7, -8, -19, -9, 0, 1, 6, -4, -3, 4, -3, -7, -2, -1, -3, -1, -3, 3, 13, 6, 1, -4, -6, -3, 3, 11, 0, -6, -5, -12, -2, 0, -12, -15, -12, -9, -9, -15, -18, -9, -6, -6, 10, 11, 11, 10, 1, 9, 9, 15, 23, 25, 22, 10, -3, 1, 9, 13, 13, 9, 11, 14, 17, 21, 8, -3, -6, 0, 14, -1, -5, -7, -11, 3, 5, 0, 4, -6, -17, -12, -15, -7, -10, -18, -19, -11, 0, 4, -5, -8, -6, -16, -14, -16, -7, 2, 4, 8, 8, 5, -1, 2, -6, -1, -8, -10, 3, 13, 23, 10, -6, -8, -4, 0, -2, 1, -6, 0, 4, -1, -5, -13, -12, -14, -1, 6, -3, -7, -7, 1, 8, 6, -7, -2, -9, -4, 3, -5, -3, 7, 1, -4, -2, 9, 12, 7, 18, 8, 9, 9, 2, 13, 14, 14, 16, 11, 10, 13, 3, 1, 5, 11, 17, 11, 3, 2, 7, 0, -12, -6, -2, -7, 1, 5, -8, -5, -9, -15, -15, -10, -13, -15, -12, -14, -4, -12, -10, -8, -15, -4, -5, 2, -3, 0, 3, -3, 0, 8, 4, -3, 3, -9, -10, -1, -5, -15, -6, 0, 4, 10, 1, 3, 1, 3, 1, -7, -7, 3, 9, 4, 8, 12, 3, -1, 10, 8, 11, 18, 8, 4, 13, 5, 1, 9, 13, 9, -3, -8, 2, 3, -11, -1, -6, 5, -1, -6, -6, -6, 5, -7, -7, -11, -4, 6, 8, 1, 0, 1, -5, 7, -6, -5, 0, -5, -1, 4, 3, 8, 0, -5, -10, 1, 9, -2, -3, -12, -1, -3, -10, -7, -12, -9, -3, -4, 8, 7, -1, 0, -2, 1, 5, 12, 13, 16, 28, 21, 9, 21, 12, 12, 12, 5, 7, 2, 1, 6, 13, 6, 9, -1, -6, -10, -19, -11, -9, -12, -18, -18, -18, -8, -14, -8, -18, -22, -16, -18, -3, -13, -1, 10, 9, 21, 25, 13, 6, 1, 2, 8, 6, 13, 16, 9, 11, 12, 11, 7, 9, -4, -7, 3, 6, 9, -3, -15, -15, -14, -12, -7, -10, -19, -19, -19, -13, -9, -4, -8, -5, 0, -7, 0, 3, 0, 3, -1, -8, -4, 4, 14, 17, 1, 4, 18, 16, 7, 0, 9, 13, 7, -1, 6, 10, 13, 14, 5, 11, 3, 2, -4, -15, -3, -7, -8, -4, 0, 4, -10, -10, -2, -11, -8, -7, -4, 0, -1, -3, -4, 3, -2, -7, 4, 4, 1, 11, 17, 16, 16, 18, 6, 9, 14, 9, 8, 8, 16, 14, 9, 2, 0, -5, -1, 1, -7, -10, -10, -8, -5, -8, -6, -12, -14, -11, -2, 3, -6, -8, -4, 3, -4, -20, -4, 0, 6, 6, -6, -3, 0, 2, 2, 5, 8, 10, 1, 8, 4, 0, -1, -16, -11, -10, -3, -1, -11, -7, -8, -11, -8, -3, 3, 2, -3, -4, 4, 12, 7, 11, 13, 10, 3, 9, 12, 5, 8, 6, 8, 8, 4, 14, 17, 12, 10, 7, 6, 6, 6, -1, -11, -3, 0, 1, -7, -11, -3, -7, -10, -1, -5, -11, -8, -8, -2, 0, -5, -8, -10, -1, 3, -3, -12, -14, -11, -7, -15, -11, -4, -2, 2, -9, -8, -1, -6, 1, 2, 1, 9, 8, 1, -3, 0, 0, 6, 6, 9, 8, 9, 7, 5, 9, 5, 2, 2, 4, 4, 2, 5, 10, 8, -4, -10, -7, -2, -4, 3, 5, -7, 0, -1, 2, 7, 0, -2, 4, 4, 1, 3, 6, -3, -7, -2, 3, 13, 0, -9, -3, -5, -1, -1, -7, 1, 0, -5, 9, -1, -11, -6, -4, -7, -3, 4, -8, -12, -12, -6, 5, 5, 9, 7, 12, 8, -1, 11, 18, 15, 13, 19, 10, 0, 1, 1, 3, -3, -1, -1, 9, 6, -1, 2, -4, -4, -10, -9, -10, -17, -16, -9, 3, -3, -8, -19, -11, 10, 7, 1, -1, 0, 7, 12, 8, 2, 6, 9, 4, 4, 7, 15, 7, -5, -6, -8, -5, -11, -14, -8, 6, -1, -17, -16, -13, -8, -9, -5, -5, -4, -1, -12, -9, -10, -6, -9, -15, -8, -10, -10, -7, -2, 1, -1, -2, 4, 8, 10, 1, 2, 10, 8, 10, 11, 18, 18, 21, 12, 6, 16, 11, 9, 8, 5, 13, 15, 17, 15, 11, 12, 12, 5, 4, 7, 5, 2, 5, 7, 2, -8, -6, -8, -9, -2, 1, -4, -14, -6, -13, -12, -5, -15, -17, -14, -7, -6, -13, -3, -5, -12, -9, -6, 1, -3, -9, -6, -5, 1, -2, -6, 0, 7, 14, 11, 10, 13, 24, 19, 12, 8, 18, 23, 11, 1, -7, 5, 6, 2, -15, -16, -3, -16, -19, -15, -11, -13, -17, -28, -19, 0, -10, -19, -12, -10, -14, -11, -13, -9, 2, 6, 5, -1, 6, 18, 16, 9, 9, 19, 21, 17, 7, 7, 15, 5, -4, -3, 12, 8, 0, -4, 8, 10, -1, -5, -4, 4, 0, 0, 6, 2, -1, -3, 3, 5, 12, 9, 1, -1, 4, 5, -13, -9, -9, -6, 9, 3, -5, -1, 2, 1, -3, -5, 1, -4, -7, -9, -13, -17, -23, -17, -12, -6, -9, -12, -4, 5, 1, -8, -5, -4, -1, -4, -1, 7, 2, 8, 1, 0, 0, 10, 6, -3, 4, 12, 11, -1, -10, 0, 9, 6, -1, -1, 6, 9, 10, -1, -1, 0, -10, -11, -4, 4, 3, -2, -8, -5, -5, -6, -7, -4, 10, 12, -3, -16, -7, 6, 2, 4, 8, 5, 20, 14, 6, 9, 12, 12, 9, 15, 17, 16, 20, 26, 21, 13, 12, 16, 16, 6, 3, 1, -2, -7, -15, -18, -19, -22, -16, -19, -29, -26, -27, -27, -21, -21, -17, -21, -15, -8, -15, -7, -8, -11, -7, -3, -1, -4, 5, 13, 3, -1, 6, 0, 10, 6, 0, 13, 14, 5, 4, 13, 12, 17, 5, 6, 9, 11, 17, 8, 11, 18, 24, 21, 22, 20, 19, 19, 14, 7, 1, 5, -3, -3, -1, -7, -12, -24, -21, -14, -16, -25, -26, -14, -14, -17, -19, -14, -12, -13, -10, -3, -4, -3, 0, -1, 2, 3, -1, -1, 11, 16, 11, 16, 11, 16, 14, 5, 13, 17, 19, 10, -3, 3, 3, -8, -8, -15, -13, -2, -5, -9, -10, -1, -3, -16, -9, -13, -11, -8, -6, -2, 0, -12, -11, -11, -9, -2, 0, -4, 4, 3, -6, 2, 10, 7, 9, 13, 11, 8, 12, 11, 3, 8, 4, 7, 5, 0, 7, 8, 12, 9, -1, 1, 7, 6, 6, 9, 1, -7, 0, 5, 0, -10, -12, -9, -11, -10, -15, -10, -9, -10, -3, -12, -2, 8, 4, 9, 9, 4, 3, 0, 10, 13, 10, 17, 11, 7, 0, 0, 11, 13, 11, 13, 8, 1, -2, 3, -2, 2, 5, 0, -2, -14, -28, -24, -9, -9, -23, -12, -6, -14, -13, -13, -20, -20, -17, -23, -14, -16, -21, -13, -8, -3, -4, -17, -22, -17, -6, -12, -13, -11, -12, -1, -6, 2, 10, 11, 9, 1, 12, 24, 24, 18, 12, 22, 36, 40, 32, 33, 34, 34, 24, 14, 21, 26, 34, 25, 29, 32, 24, 17, 16, 5, 2, 13, -2, -1, 0, -14, -9, -13, -5, -9, -11, -15, -19, -13, -20, -17, -14, -19, -16, -13, -3, 4, -3, -8, -14, -25, -21, -7, -10, -13, -4, -9, -15, -13, -14, -14, -12, -11, -6, -3, -1, -7, -12, -10, -7, 3, -7, -5, -2, -16, -9, -9, -13, -3, -3, 2, 12, 8, 11, 12, 5, 11, 17, 10, 10, 18, 23, 15, 7, 16, 15, 19, 24, 16, 10, 7, 9, 14, 6, 10, 8, -1, 2, 5, 1, -1, -2, -1, -6, -18, -21, -11, -5, -4, -6, -11, -4, -15, -29, -15, -8, -9, -9, -13, -17, -15, -10, -8, -11, -11, -4, -5, -14, -17, 5, 5, -4, 6, 9, 10, 14, 12, 8, 7, 11, 6, 4, 15, 25, 28, 23, 19, 22, 12, 13, 15, 10, 12, 12, 5, 3, 4, 2, 3, -4, -3, -5, -4, -10, -23, -24, -12, -7, -9, -10, -10, -8, -8, -11, -15, -17, -29, -22, -24, -24, -9, -13, -1, 2, -3, -7, -11, -2, -4, -15, -15, -7, -3, -2, -1, -1, -4, -6, 4, 12, 0, 3, 7, 0, 3, 4, 11, 21, 24, 25, 27, 22, 13, 12, 10, 11, 15, 10, 25, 27, 13, 13, 12, 19, 15, 4, 7, 3, 6, -5, -10, -2, 2, 1, -7, -17, -19, -5, -18, -26, -19, -21, -18, -24, -25, -8, -6, -18, -6, -12, -14, -11, -11, -6, -8, -7, 0, 5, 1, -5, -4, 3, 2, 6, 5, 2, 0, 4, 14, 17, 19, 11, 15, 10, 2, 0, 0, 6, 7, 6, 5, 8, 3, -3, 8, 16, 3, 1, -1, 3, 10, 0, 8, 8, 11, 2, -8, -2, -5, -6, -5, -6, -3, 1, 0, 3, 3, 4, -4, -8, -10, -9, -11, -10, -10, -5, 0, -15, -6, -4, 0, 1, -6, -7, -9, -7, -4, 7, 4, 4, 12, 19, 18, 6, 10, 11, 9, 3, 9, 9, 2, 6, 19, 14, 12, 11, 7, 13, 2, 1, 12, 5, -1, -4, -2, -5, -2, -4, -18, -7, -16, -15, -8, -15, -11, -12, -11, -14, -9, -12, -11, -1, -10, -3, -2, -5, 4, -7, -5, -1, -7, -2, 1, 2, 11, 3, 5, 5, -3, 3, -9, -3, 0, 3, -4, -7, -1, -2, -2, -3, 5, 0, 0, 1, -9, 1, 1, 3, 12, 12, 11, 15, 13, 13, 14, 10, 12, 16, 17, 12, 13, 9, 12, 23, 18, 23, 14, 7, 12, 7, 3, -1, 8, 8, -8, -8, -8, -4, -8, -10, -7, -14, -19, -19, -20, -21, -15, -16, -22, -14, -17, -17, -13, -17, -18, -16, -26, -16, -11, -20, -12, -10, 0, -3, 3, 1, 6, 3, 0, 7, 12, 15, 6, 5, 8, 12, 12, 15, 17, 14, 12, 17, 12, 10, 13, 8, 9, 7, 8, 13, 13, 0, 4, 10, 7, 5, 7, 5, 7, 3, 0, 2, -6, 3, 0, -5, 1, 5, 12, 0, -6, -13, -10, -4, -8, -11, -12, -3, -4, -17, -15, -9, -9, -15, -12, -14, -15, -10, -3, -3, -8, -8, -6, -6, -6, -2, 0, -5, -3, 7, 11, 2, 8, 13, 16, 14, 13, 19, 16, 16, 14, 13, 7, 9, 4, 0, 6, 8, 8, 6, 6, 0, -3, 3, 1, -7, -9, -8, -12, -13, -14, -20, -19, -20, -15, -12, -9, -5, -12, -10, -4, -7, -11, -6, -8, -5, 4, 6, 11, 17, 13, 10, 16, 10, 14, 14, 8, 16, 7, 4, 6, 2, 5, 13, 15, 7, 12, 9, 2, 6, -6, -8, -7, -5, 2, 2, 5, 2, -7, -2, -2, -10, -9, -11, -9, -7, -4, -4, -5, 2, 2, -1, -4, -8, -15, -12, -13, -7, -5, -6, -4, -4, 1, 1, 6, 2, 0, 2, -1, -1, -1, 0, 2, -4, -4, 4, 7, 6, 12, 2, 2, 9, 3, 3, -1, 5, 4, 5, 5, 12, 18, 12, 12, 6, 4, 4, -5, 4, 4, -3, -4, 0, 1, -12, -12, -3, -1, -3, -4, -5, -1, -1, -1, 0, 1, 3, -1, 4, -2, -2, -4, 0, 7, -2, 3, 10, 9, 10, 4, 2, 5, 8, 2, 0, 1, -2, 6, 11, 4, -3, -1, -7, -8, -12, -15, -12, -7, 0, -10, 3, 1, 0, 2, -7, -15, -21, -8, -15, -12, -13, -6, 2, -6, 0, 1, 4, 5, -5, -3, 2, 2, -2, 0, 8, 5, 2, 7, 12, 15, 13, 5, 7, 5, 1, 4, 3, 11, 12, 9, 8, 9, 11, 8, 8, 8, 5, 5, -4, -7, 5, -3, -4, -1, -1, 1, 2, -4, -11, -9, -9, -16, -9, -11, -7, -12, -14, -9, -14, -8, -6, -8, -11, -11, -3, -2, -5, -10, -5, 6, 4, -1, 2, 6, 3, -4, -1, 2, 1, -2, -4, -5, 2, 4, 3, 2, 0, 10, 2, 6, 10, 7, 15, 6, -1, -2, 6, -4, -5, 1, -7, -2, -4, -5, -2, -1, 2, 6, 11, 6, 1, 2, -1, 2, 7, 1, 4, 6, -1, 5, 1, 4, 9, 5, 4, 1, 7, 8, 10, 7, 0, 8, 4, -3, -5, -1, -3, 0, -3, -16, -11, -8, -7, -10, -3, -2, 0, -9, -13, 0, -7, 2, 7, 0, 0, -2, -6, -5, 2, -6, -6, -5, -8, -8, -8, -1, -3, -5, 1, 0, -4, -2, -2, 1, -3, -6, 1, 1, 3, -1, -5, 3, -1, -4, -2, 6, 4, 5, 7, 2, 2, 6, 5, -2, 7, 5, 1, 10, 5, 1, 8, 7, 1, 6, 3, 9, 8, 5, 11, 11, 4, 4, 10, 3, 4, 3, 0, 10, 7, -2, -6, 4, 0, -3, 4, -1, 2, 2, -6, -2, 1, -5, -1, 2, -2, 2, 4, -5, -5, -7, -5, -6, -6, -9, -4, -1, -10, -3, 2, 1, -4, -2, -5, -10, -5, -10, 0, 4, -6, -11, -5, -6, -9, -5, -4, 4, 3, 3, 3, -4, -4, -1, -4, -11, -2, 2, -1, 1, -7, -10, -6, 1, -7, -10, 2, -4, -1, 1, -4, -4, 0, 1, 1, 4, 5, 7, 0, 5, 6, 6, 8, 7, 3, 0, 3, -1, -4, -1, -4, 2, 7, 5, -1, 6, 6, -2, 5, 1, 0, 4, 4, 5, 1, -1, 0, 7, 9, 6, 4, 3, 4, 5, -1, -2, 6, 5, 4, 8, 2, -5, 3, -1, -1, 4, 0, 0, 4, 5, 2, 6, -2, -3, 4, 0, -1, -7, -4, 1, 0, -2, -11, -10, -9, -13, -12, -10, -9, -8, -20, -12, -6, -13, -10, -6, -8, -4, 4, -5, 0, 4, -6, 5, 4, 5, 5, 0, 1, -7, -5, 1, 3, 7, 7, 4, -4, -3, -1, -3, 2, 8, 0, 8, 9, -1, 6, 10, 3, 8, 20, 13, 8, 14, 7, 3, 6, -1, 6, 7, 2, 10, 2, 3, 1, -8, -3, 7, 4, -1, 6, 2, -2, 3, 2, -1, 2, 5, 3, 3, 0, -2, 1, 1, -6, -3, -5, -1, 6, -8, 0, -5, -9, -5, -14, -9, -9, -9, -6, -6, -9, -10, -8, -7, -6, -8, -7, -8, -12, -10, -10, -7, -10, -8, -1, 0, 2, 3, 0, -1, 0, -1, 6, 4, 6, 9, 8, 3, 3, 5, 2, 8, 8, 8, 5, 13, 6, 1, 8, 5, 8, 8, 5, -3, -1, 8, 5, 2, 2, -5, 2, 1, 5, 0, -4, 4, -1, -4, -6, -2, -10, -5, -2, -4, -2, 3, 2, -9, 0, -1, -7, -4, 2, 0, 4, 0, -2, 5, 1, 2, 1, 1, 10, 16, 8, 4, 7, 0, 7, 11, 3, -4, 6, 6, -3, 3, -6, -7, 0, -1, 3, 3, -6, -9, -9, -9, 0, 3, -2, -5, -8, -14, -14, -11, -15, -9, -12, -15, -15, -14, -12, -12, -10, -15, -7, -4, -6, -4, -13, -9, -9, -3, 3, 7, 10, 8, 13, 18, 12, 18, 16, 5, 16, 17, 17, 19, 16, 19, 19, 18, 19, 16, 12, 6, 3, 9, 15, 17, 5, 2, 2, -3, -2, 3, 2, 0, 0, -5, -4, -9, -9, 0, -9, -12, -9, -16, -9, -7, -15, -9, -10, -11, -5, -12, -8, -6, -5, -1, 0, 2, -6, 5, 1, 3, 6, -1, 0, 1, 1, 9, 6, -2, 3, 10, 9, 8, 8, -6, -3, -1, -9, 1, -4, -4, 4, 1, -3, -4, -7, -9, 0, 0, -8, -1, -7, -4, -4, -7, 4, 2, 10, 8, -3, -1, -5, -2, 2, 5, 7, 2, 9, 15, 9, 4, 3, 0, 5, 15, 12, 8, 6, -1, -5, 3, 3, 4, -1, 0, -2, -4, 1, -4, -8, -7, -6, -10, -4, -7, -4, 0, -4, -3, -11, -5, -5, -7, -6, -10, -8, -5, -2, 2, 1, 0, -1, -10, -11, -3, 0, -1, 2, 6, 2, 3, 0, -1, 4, 2, 4, 0, 5, 8, 6, 10, 12, 11, 12, 8, 6, 6, -3, 0, 1, 4, 8, 5, 1, 2, 1, 4, 11, -2, -2, 2, -2, 5, 4, 1, 1, 2, 1, -6, -3, -5, -7, -5, -11, -9, -4, -7, -2, -1, -9, -10, -8, -14, -10, -2, -13, -10, -5, -9, -5, -3, -6, -2, -4, -5, -9, -12, -12, -2, 11, 7, 8, 5, -4, -5, 1, 5, 9, 16, 9, 14, 15, 11, 12, 8, 7, 12, 6, 10, 13, 9, 14, 10, 11, 11, 5, 7, 4, 1, 0, 1, 0, 7, 3, 7, 10, 2, -3, -7, -7, -10, -4, -3, -5, -5, -10, -11, -19, -16, -8, -10, -12, -14, -10, -8, -9, -11, -10, -4, -1, -6, -9, -13, -13, -6, -4, 8, 0, -6, -2, 2, 2, 2, 2, -7, -3, -3, 3, 7, 11, 4, 10, 6, 0, 6, 9, 11, 13, 11, 3, 14, 17, 14, 18, 6, 0, 7, 6, 12, 10, 6, 9, 7, 4, 2, 7, -3, -7, -4, -10, -10, -7, -12, -5, -11, -15, -8, -8, -11, -17, -17, -11, -8, -11, -4, -7, -9, -10, -3, -2, -4, 0, -6, -7, -3, 1, 6, 10, 3, 1, -3, -2, 2, 1, 1, 4, 2, 1, 8, 7, 7, 3, 4, 3, 4, 8, 8, 8, -1, -5, 3, -4, -1, 9, 6, 2, 4, 0, 2, 4, 6, 5, 2, 9, 8, 7, 3, -6, -5, -1, 3, 4, -2, -2, 6, 4, 3, 9, 4, -5, 1, 4, 4, 9, 7, 0, -3, -5, -6, -4, -1, 0, -3, -8, -10, -7, -3, 1, 2, -3, 0, 3, 9, 5, 0, 6, 1, -8, 1, 2, -2, 4, -5, -8, -6, -6, 2, 6, 2, 1, 3, 0, -1, -1, -8, -11, -12, -14, -10, -2, -8, -19, -11, -8, -9, -11, -14, -8, -5, -5, 1, 8, 1, -3, 2, 2, 1, 4, -1, 1, 5, 1, -4, -3, 0, 2, 10, 7, 2, 4, 7, 8, 4, 2, 9, 12, 8, 7, 11, 13, 8, 8, 7, 3, 5, 6, 11, 8, 0, 3, 7, 5, 5, 8, 9, 5, 3, 6, 1, 4, -3, -5, -1, 0, 5, -4, -9, -7, -13, -10, -12, -18, -14, -15, -7, -1, -8, -12, -11, -7, -11, -13, -7, -12, -13, -9, -12, -7, -12, -13, -12, -13, -7, -6, -5, -5, -4, 0, -2, -3, -1, 0, 5, 1, 4, 11, 13, 13, 12, 17, 10, 5, 9, 14, 16, 10, 14, 13, 17, 19, 9, 16, 17, 12, 15, 13, 12, 11, 4, 8, 12, 5, 3, 1, 0, 1, -4, -6, -3, 2, 0, 4, 7, 6, 8, 3, -3, -7, -7, -10, -13, -9, -16, -15, -14, -16, -11, -15, -10, -10, -13, -12, -17, -11, -11, -14, -6, -5, -5, -1, -13, -10, -6, -10, -8, -5, 3, 3, 4, 9, 7, 11, 14, 10, 10, 13, 15, 14, 13, 16, 16, 15, 13, 7, 6, 5, 5, 4, -2, 0, 3, -7, -1, 0, -7, -7, -9, -12, -8, -6, -8, -11, -13, -15, -16, -9, -16, -14, -7, -11, -9, -8, -6, -9, -1, -5, -8, 5, 2, 2, 4, -1, 5, 4, 1, 11, 6, 0, 5, 9, 6, 2, 9, 3, 2, 8, 2, 10, 7, 6, 14, 16, 11, 11, 15, 7, 5, 16, 15, 13, 11, 5, 10, 12, 9, 5, 5, 5, 4, 4, 4, 7, 4, -6, -3, -2, -7, -5, -3, -7, -12, -9, -13, -16, -11, -13, -11, -14, -21, -18, -13, -8, -13, -13, -8, -7, -5, -13, -11, -4, -3, -4, -2, -2, 0, 1, 5, 8, 9, 11, 9, 5, 8, 6, 10, 4, 2, 6, 3, 12, 6, 1, 5, 5, 8, 2, 0, 3, 8, 4, 2, 3, 3, 5, -4, 0, 1, -1, 2, 1, 6, 7, 7, 5, -1, 2, 4, 4, 6, -1, 8, 15, 9, 11, 4, -1, 0, -5, -2, -8, -2, 2, -4, -2, -9, -3, -9, -10, -5, -12, -11, -11, -10, -4, -8, -10, -10, -13, -9, -9, -6, -4, -4, -7, -5, 3, 4, 4, 4, 1, 8, 8, 4, 3, 1, 4, 8, 8, 4, 5, 12, 1, -2, 6, 3, -1, 0, 3, 3, 1, 3, -1, -5, -7, -7, -2, -1, -2, -3, -1, -2, -7, 1, 9, 7, 2, 2, 3, 5, 8, 3, 8, 12, 6, 3, 4, 2, -2, -5, -1, 1, 0, 8, 4, 2, 2, 7, 5, 2, 0, -2, 4, 3, -1, 4, -1, 0, -1, -1, -4, -2, 3, -3, -2, -4, -6, -3, -9, -5, -1, -6, -2, -10, -9, -1, -4, -7, -11, -11, -9, -8, -10, -16, -10, -10, -6, -3, -8, -6, -1, -2, -3, -1, 6, 8, 5, 4, 5, 10, 7, 11, 8, 8, 13, 12, 16, 17, 20, 15, 10, 13, 13, 16, 12, 4, 3, 0, 6, 6, 7, 16, 1, -5, 0, -11, -5, -10, -11, -8, -12, -4, -5, -6, 1, -7, -6, -5, -3, 4, 0, -1, -6, -7, -3, -5, -4, -1, -2, -2, -1, -1, 0, -1, -3, -3, 2, 0, -5, -6, -5, -6, -5, -2, -2, -2, -3, 0, -2, -2, 2, 1, 1, -2, -2, 7, 5, 4, 3, 4, 6, 5, 10, 5, 5, 11, 9, 10, 7, -1, 8, 4, 0, 2, 2, 4, -1, 4, 5, 3, 3, 4, 0, 0, 0, 3, -4, -10, -5, -7, 1, -4, -3, -1, -5, -4, -7, -1, -1, -5, -5, -5, -4, -5, -5, -3, -4, -5, -1, 2, 5, 3, 1, -1, -7, 0, -1, 3, 5, 0, 2, 3, 2, 5, 4, 3, 1, 7, 8, 6, 6, 6, 4, 4, 3, 4, 3, -1, 3, 5, 2, 2, 0, -2, -2, -1, -4, 1, -3, -1, 3, -7, -8, -10, -8, -5, -9, -5, -4, -3, -4, -3, -3, -5, -10, -4, 3, 1, -1, -3, -2, -5, -1, 4, 3, 2, -1, -3, 4, 2, 2, 2, 3, 3, 3, 3, 7, 7, 3, 7, 1, 3, 2, 2, 3, 6, 7, 3, 5, 2, 1, 4, 5, 1, 2, 4, 4, 5, 2, -4, -6, 0, 2, 2, 2, -4, -1, 0, -4, -5, -3, -4, -8, 0, 0, -1, -2, -7, -7, -8, 0, 3, -3, 1, -1, -5, -6, -5, -1, 2, -3, -5, 1, 5, 0, 2, 1, -1, -3, -1, 1, -1, 0, 0, 0, -1, 5, 10, 9, 2, 1, 5, 8, 6, 6, 7, 3, 4, 4, 5, 8, 4, 2, 2, -5, -3, 2, -3, 1, -2, -5, -4, -5, -7, -9, -8, -7, -8, -7, -2, -4, -8, -7, -8, -3, 0, -2, 1, -1, -1, -3, -2, 5, 2, 0, 2, 3, 4, 4, 2, 1, 3, 10, 6, 7, 7, 3, 1, 6, 5, 1, 6, 8, 5, 7, 4, 0, 0, 0, 3, 1, -5, -6, -6, -2, -4, -3, 2, -3, -4, -5, -2, -1, -8, -7, -1, -3, -4, -1, -2, -1, 3, -5, -1, -2, -5, -2, -4, 1, 6, 3, 0, 0, -1, 2, -3, -2, 2, 2, 2, 4, 2, -1, -3, -1, 1, 1, 3, -2, 2, 6, 4, 1, 4, 1, 1, 5, 2, 3, 5, -1, -1, 2, 1, 2, 4, 7, 6, 4, 4, 2, 2, 1, 0, 1, 1, 2, -1, 1, 1, 3, -3, -5, 1, -3, 0, -3, -1, 1, -2, 0, 2, -2, -5, -4, -5, -3, -1, -4, -4, -1, -1, 3, -3, -2, -2, -3, -4, -7, -3, 0, -3, -8, -4, 3, 2, -5, -3, -2, -4, -5, 1, 2, 2, 0, 0, 6, 9, 9, 7, 4, -1, -1, 5, 6, 8, 9, 7, 6, 5, 5, 3, 1, 1, -2, -2, -4, -1, 2, -2, 0, 1, -3, -4, -4, -4, -5, -3, -6, -5, -5, -3, -3, -3, -4, -5, -3, 0, 3, 0, -4, -6, 2, 5, 6, -1, -5, 2, 4, 0, 2, 4, 2, 0, -1, 0, 3, 5, 1, -1, 3, 3, 0, 3, 4, 3, 4, 1, 0, 2, 2, 4, 6, 3, 1, 6, 3, 4, 2, -2, -5, -6, -3, -2, -5, -4, -6, -7, -7, -8, -6, -7, -13, -11, -6, -5, -3, -3, -5, -6, -3, 0, 2, 0, -1, 4, 1, 2, 0, 3, 5, 2, 6, 6, 1, 0, 3, 5, 5, 3, 8, 7, 6, 3, 4, 9, 5, 2, 2, 4, 4, 0, 0, 0, 4, 3, -2, -4, -7, -3, -2, 1, 3, -2, -4, -7, -8, -5, -6, -2, -2, -3, -1, 1, -2, -2, 5, 3, 1, 1, 1, 0, 2, 4, 4, 4, 2, -1, 2, 4, -2, 0, -1, -1, -2, -1, 4, 2, 2, 0, -1, 3, 3, -2, -2, 3, 1, 2, 7, 7, 6, 4, 3, 4, 9, 0, 1, 5, 0, 0, -1, -6, 0, -2, -5, -4, -3, -7, -8, -6, -13, -12, -9, -8, -5, -6, -7, -6, -7, -6, -2, 2, -4, -1, 5, 1, 4, 3, 2, 5, 3, 4, 7, 9, 6, 4, 7, 2, 2, -3, -6, -2, -4, -2, 3, 6, 0, -1, 0, -2, -1, 2, 2, 2, 5, 7, 7, 9, 7, 3, 1, 2, 4, 4, 2, 3, 4, 6, 1, 1, -3, -6, -4, -9, -10, -6, -6, -9, -11, -7, -5, -5, -4, -4, -3, -8, -6, -1, -3, -4, 1, 1, -1, 1, 4, 5, 3, -3, -3, -2, 7, 7, 9, 12, 7, 5, 4, 0, 7, 6, 0, 2, 2, 3, 4, 4, -2, -1, 2, -5, -3, -3, -8, -4, -1, -4, -6, 1, -3, -8, -1, -2, -1, 0, -3, -3, -3, -1, 3, 3, 3, 2, 1, -3, -2, 2, 1, 2, 2, 2, 1, 4, 2, 2, 0, -7, -3, 2, -4, 0, 0, -1, 0, 1, 1, -1, 1, 1, 6, 4, 3, 7, 9, 7, 7, 5, 3, 5, 5, -1, 3, 5, 5, 4, -2, -4, -3, -7, -11, -10, -8, -8, -12, -8, -5, -3, -5, -4, -6, -8, -7, -7, -5, -3, 2, 2, -2, 0, 5, 7, 4, 8, 7, 3, 3, 4, 6, 5, 4, 4, 3, -1, -4, -6, -3, -1, 0, 1, -3, -5, -1, 3, 2, 2, 2, 4, 4, 2, 0, 7, 13, 12, 11, 10, 8, 3, 2, 7, 8, 6, 0, -4, -3, -5, -7, -4, -3, -9, -12, -11, -14, -13, -8, -7, -8, -12, -11, -5, -3, -4, -2, 2, -1, 2, 3, 5, 8, 8, 11, 7, 6, 8, 3, 4, 2, 4, 10, 4, 1, 3, 3, -1, -5, -5, -8, -3, -3, -6, 1, -2, -4, 0, -4, -5, 0, 2, -2, -4, 0, 2, 3, 7, 5, 4, 2, -3, 2, 5, 4, -3, -2, 6, 6, 1, -1, 4, 5, -3, -7, -7, -6, -3, -1, -1, 1, 1, -5, -12, -11, -6, -1, -1, -1, -1, -2, 1, 2, -1, 3, 4, 3, 0, 3, 5, 8, 9, 4, 1, 1, 6, 1, -1, 2, -1, -2, 0, -1, 2, 0, -1, 1, 3, 0, -1, -2, -5, -3, 2, 1, 1, 2, 1, 2, -2, -2, -1, 0, -3, -1, 0, -2, 1, 2, 0, -1, 1, 1, 2, 6, 8, -1, -2, 2, 0, 1, 5, 4, 2, 2, -1, 1, -2, -2, -2, -4, -2, -1, -1, -6, -6, -6, -5, -4, -1, -2, -6, -4, 0, 0, 0, 0, 2, 1, -1, -3, 3, 5, 5, -1, -1, 5, 1, 1, 4, 3, 4, 4, 4, -3, -3, -2, 2, 2, 1, 1, -1, -2, -4, -4, -1, -1, 2, 3, 0, -4, 2, 2, 1, 5, -3, 1, 8, 5, 4, 2, 3, 0, 0, 3, 2, 2, 2, -3, -5, -1, 0, 2, 1, 1, -1, -2, -3, -4, -1, -2, -3, -4, -3, -2, -5, 2, 3, -2, -4, 0, 2, -4, -1, 4, 3, -1, 0, 0, -5, -2, -1, 4, 4, 1, 1, 0, 1, 5, 4, 1, 2, 0, -1, -5, -1, 1, 2
};

int get_feature_data(size_t offset, size_t length, float *out_ptr) {
    memcpy(out_ptr, features + offset, length * sizeof(float));
    return 0;
}

void vprint(const char *fmt, va_list argp)
{
    char string[200];
    if(0 < vsprintf(string, fmt, argp)) // build string
    {
        HAL_UART_Transmit(&huart1, (uint8_t*)string, strlen(string), 0xffffff); // send message via UART
    }
}
void ei_printf(const char *format, ...) {
    va_list myargs;
    va_start(myargs, format);
    vprint(format, myargs);
    va_end(myargs);
}
/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */
  signal_t signal;
  signal.total_length = sizeof(features) / sizeof(features[0]);
  signal.get_data = &get_feature_data;
  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_CRC_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		ei_impulse_result_t result = { 0 };
		EI_IMPULSE_ERROR res = run_classifier(&signal, &result, true);
		ei_printf("run_classifier returned: %d\n", res);
		ei_printf(
				"Predictions (DSP: %d ms., Classification: %d ms., Anomaly: %d ms.): \n",
				result.timing.dsp, result.timing.classification, result.timing.anomaly);
		// print the predictions
		ei_printf("[");
		for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
			ei_printf_float(result.classification[ix].value);
#if EI_CLASSIFIER_HAS_ANOMALY == 1
        ei_printf(", ");
#else
			if (ix != EI_CLASSIFIER_LABEL_COUNT - 1) {
				ei_printf(", ");
			}
#endif
		}
#if EI_CLASSIFIER_HAS_ANOMALY == 1
    ei_printf_float(result.anomaly);
#endif
		ei_printf("]\n\n\n");
		HAL_Delay(5000);
  }
  /* USER CODE END 3 */
}

/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);

  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  RCC_OscInitStruct.PLL.PLLM = 10;
  RCC_OscInitStruct.PLL.PLLN = 210;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 2;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }

  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t *file, uint32_t line)
{
  /* USER CODE BEGIN 6 */
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
